javascript事件大全

2007/06/04 01:08 ArthurXF
click() 对象.click() 使对象被点击。
closed 对象.closed 对象窗口是否已关闭true/false
clearTimeout(对象) 清除已设置的setTimeout对象
clearInterval(对象) 清除已设置的setInterval对象
confirm("提示信息") 弹出确认框,确定返回true取消返回false
cursor:样式 更改鼠标样式 hand crosshair text wait help default auto e/s/w/n-resize

event.clientX 返回最后一次点击鼠标X坐标值;
event.clientY 返回最后一次点击鼠标Y坐标值;
event.offsetX 返回当前鼠标悬停X坐标值
event.offsetY 返回当前鼠标悬停Y坐标值

document.write(document.lastModified) 网页最后一次更新时间
document.ondblclick=x 当双击鼠标产生事件
document.onmousedown=x 单击鼠标键产生事件

document.body.scrollTop; 返回和设置当前竖向滚动条的坐标值,须与函数配合,
document.body.scrollLeft; 返回和设置当前横向滚动务的坐标值,须与函数配合,
document.title document.title="message"; 当前窗口的标题栏文字
document.bgcolor document.bgcolor="颜色值"; 改变窗口背景颜色
document.Fgcolor document.Fgcolor="颜色值"; 改变正文颜色
document.linkcolor document.linkcolor="颜色值"; 改变超联接颜色
document.alinkcolor document.alinkcolor="颜色值"; 改变正点击联接的颜色
document.VlinkColor document.VlinkColor="颜色值"; 改变已访问联接的颜色
document.forms.length 返回当前页form表单数
document.anchors.length 返回当前页锚的数量
document.links.length 返回当前页联接的数量
document.onmousedown=x 单击鼠标触发事件
document.ondblclick=x 双击鼠标触发事件
defaultStatus window.status=defaultStatus; 将状态栏设置默认显示

function function xx(){...} 定义函数
isNumeric 判断是否是数字
innerHTML xx=对象.innerHTML 输入某对象标签中的html源代码
innerText divid.innerText=xx 将以div定位以id命名的对象值设为XX

location.reload(); 使本页刷新,target可等于一个刷新的网页

Math.random() 随机涵数,只能是0到1之间的数,如果要得到其它数,可以为*10,再取整
Math.floor(number) 将对象number转为整数,舍取所有小数
Math.min(1,2) 返回1,2哪个小
Math.max(1,2) 返回1,2哪个大

navigator.appName 返回当前浏览器名称
navigator.appVersion 返回当前浏览器版本号
navigator.appCodeName 返回当前浏览器代码名字
navigator.userAgent 返回当前浏览器用户代标志

onsubmit onsubmit="return(xx())" 使用函数返回值
opener opener.document.对象 控制原打开窗体对象

prompt xx=window.prompt("提示信息","预定值"); 输入语句
parent parent.框架名.对象 控制框架页面

return return false 返回值
random 随机参数(0至1之间)
reset() form.reset(); 使form表单内的数据重置

split("") string.split("") 将string对象字符以逗号隔开
submit() form对象.submit() 使form对象提交数据

String对象的 charAt(x)对象 反回指定对象的第多少位的字母
lastIndexOf("string") 从右到左询找指定字符,没有返回-1
indexOf("string") 从左到右询找指定字符,没有返回-1
LowerCase() 将对象全部转为小写
UpperCase() 将对象全部转为大写
substring(0,5) string.substring(x,x) 返回对象中从0到5的字符
setTimeout("function",time) 设置一个超时对象
setInterval("function",time) 设置一个超时对象

toLocaleString() x.toLocaleString() 从x时间对象中获取时间,以字符串型式存在
typeof(变量名) 检查变量的类型,值有:String,Boolean,Object,Function,Underfined

window.event.button==1/2/3 鼠标键左键等于1右键等于2两个键一起按为3
window.screen.availWidth 返回当前屏幕宽度(空白空间)
window.screen.availHeight 返回当前屏幕高度(空白空间)
window.screen.width 返回当前屏幕宽度(分辨率值)
window.screen.height 返回当前屏幕高度(分辨率值)
window.document.body.offsetHeight; 返回当前网页高度
window.document.body.offsetWidth; 返回当前网页宽度
window.resizeTo(0,0) 将窗口设置宽高
window.moveTo(0,0) 将窗口移到某位置
window.focus() 使当前窗口获得焦点
window.scroll(x,y) 窗口滚动条坐标,y控制上下移动,须与函数配合
window.open() window.open("地址","名称","属性")
属性:toolbar(工具栏),location(地址栏),directions,status(状态栏),
menubar(菜单栏),scrollbar(滚动条),resizable(改变大小), width(宽),height(高),fullscreen(全 屏),scrollbars(全屏时无滚动条无参 数,channelmode(宽屏),left(打开窗口x坐标),top(打开窗口y坐标)
window.location = 'view-source:' + window.location.href 应用事件查看网页源代码;


a=new Date(); //创建a为一个新的时期对象
y=a.getYear(); //y的值为从对象a中获取年份值 两位数年份
y1=a.getFullYear(); //获取全年份数 四位数年份
m=a.getMonth(); //获取月份值
d=a.getDate(); //获取日期值
d1=a.getDay(); //获取当前星期值
h=a.getHours(); //获取当前小时数
m1=a.getMinutes(); //获取当前分钟数
s=a.getSeconds(); //获取当前秒钟数


对象.style.fontSize="文字大小";
单位:mm/cm/in英寸/pc帕/pt点/px象素/em文字高
1in=1.25cm
1pc=12pt
1pt=1.2px(800*600分辩率下)

文本字体属性:
fontSize大小
family字体
color颜色
fontStyle风格,取值为normal一般,italic斜体,oblique斜体且加粗
fontWeight加粗,取值为100到900不等,900最粗,light,normal,bold
letterSpacing间距,更改文字间距离,取值为,1pt,10px,1cm
textDecoration:文字修饰;取值,none不修饰,underline下划线,overline上划线
background:文字背景颜色,
backgroundImage:背景图片,取值为图片的插入路径


点击网页正文函数调用触发器:

1.onClick 当对象被点击
2.onLoad 当网页打开,只能书写在body中
3.onUnload 当网页关闭或离开时,只能书写在body中
4.onmouseover 当鼠标悬于其上时
5.onmouseout 当鼠标离开对象时
6.onmouseup 当鼠标松开
7.onmousedown 当鼠标按下键
8.onFocus 当对象获取焦点时
9.onSelect 当对象的文本被选中时
10.onChange 当对象的内容被改变
11.onBlur 当对象失去焦点
onsubmit=return(ss())表单调用时返回的值

直线 border-bottom:1x solid black
虚线 border-bottom:1x dotted black
点划线 border-bottom:2x dashed black
双线 border-bottom:5x double black
槽状 border-bottom:1x groove black
脊状 border-bottom:1x ridge black


1.边缘高光glow(color=颜色,strength=亮光大小)

2.水平翻转fliph() 使对象水平翻转180度

3.垂直翻转flipv() 使对象垂直翻转180度

4.对象模糊blur(add=true/false direction=方向 strength=强度)
add指定是否按印象画派进行模糊direction模糊方向strength模糊强度
5.对象透明alpha(opaction=0-100,finishopacity=0-100,style=0/1/2/3)
opaction对象整体不透明值finishopacity当对象利用了渐透明时该项指定结束透明位置的不透明值style指定透明方式0为整体透明,1为线型透明,2为圆型透明,3为矩形透明
6.去除颜色chroma(color=颜色值)使对象中颜色与指定颜色相同区域透明
7.建立阴影dropshadow(color=阴影颜色,offx=水平向左偏离像素,offy=水平向下偏离像素)
8.去色gray()使对象呈灰度显示
9.负片效果invert()使对象呈底片效果
10.高光light()使对象呈黑色显示
11.遮盖mask(color=颜色)使整个对象以指定颜色进行蒙板一次

opacity 表透明度水平.0~100,0表全透明,100表完全不透明
finishopacity表想要设置的渐变透明效果.0~100.
style 表透明区的形状.0表统一形状.1表线形.2表放射形.3表长方形.
startx.starty表渐变透明效果的开始时X和Y坐标.
finishx,finishy渐变透明效果结束时x,y 的坐标.
add有来确定是否在模糊效果中使有原有目标.值为0,1.0表"否",1表"是".
direction设置模糊的方向.0度表垂直向上,45度为一个单位.默认值是向左270度.left,right,down,up.
strength 只能用整数来确定.代表有多少个像素的宽度将受到模糊影响.默认是5个.
color要透明的颜色.
offx,offy分别是x,y 方向阴影的偏移量.
positive指投影方式.0表透明像素生成阴影.1表只给出不透明像素生成阴影..

AddAmbient:加入包围的光源.
AddCone:加入锥形光源.
AddPoint加入点光源
Changcolor:改变光的颜色.
Changstrength:改变光源的强度.
Clear:清除所有的光源.
MoveLight:移动光源.

freq是波纹的频率,在指定在对象上一区需要产生多少个完事的波纹.
lightstrength可对于波纹增强光影的效果.显著0~100正整数,正弦波开始位置是0~360度.0表从0度开始,25表从90度开始.
strength表振幅大小.


hand style="cursor:hand"
crosshair style="cursor:crosshair"
text style="cursor:text"
wait style="cursor:wait"
default style="cursor:default"
help style="cursor:help"
e-resize style="cursor:e-resize"
ne-resize style="cursor:ne-resize"
n-resize style="cursor:n-resize"
nw-resize style="cursor:nw-resize"
w-resize style="cursor:w-resize"
s-resize style="cursor:s-resize"
sw-resize style="cursor:sw-resize "
se-resize style="cursor:se-resize"
auto style="cursor:auto"

现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。
PHP培训招生简章
Tags: ,

JScript 语法错误

2007/06/04 01:07 ArthurXF
JScript 语法错误是指当 JScript 语句违反了 JScript 脚本语言的一条或多条语法规则时导致的错误。JScript 语法错误发生在程序编译阶段,在开始运行该程序之前。(错误发生在开发过程中),以下是32个语法错误



错误号 描述

十进制           十六进制              说明

1001              800A03E9             内存不足

1002              800A03EA             语法错误
1003              800A03EB             需要“:”
1004              800A03EC             需要“;”
1005              800A03ED             需要“(”
1006              800A03EE             需要“)”

1007              800A03EF             需要“]”
1008              800A03F0             需要“{”
1009              800A03F1             需要“}”
1010              800A03F2             需要标识符
1011                     800A03F3              需要“=”
1012              800A03F4             需要“/”
1013              800A03F5             无效数

1014              800A03F6             非法字符
1015              800A03F7             字符串常数未结束

1016              800A03F8             注释未结束
1018              800A03FA             函数外有 ’return’ 语句
1019              800A03FB             在循环外不能有“break”
1020              800A03FC             在循环外不能有“continue”

1023              800A03FF             需要十六进制数
1024              800A0400              需要“while”
1025              800A0401              标签定义重复
1026              800A0402              未找到标签
1027              800A0403              一条 “switch” 语句中只能有一个 “default”
1028              800A0404              需要标识符、字符串或者数字
1029              800A0405              需要“@end”
1030              800A0406              条件编译已关闭

1031              800A0407              需要常数
1032              800A0408              需要“@”
1033              800A0409              需要“catch”

1034              800A040A             需要“var”
1035              800A040B             “Throw”的后面必须跟有一个表达式,且在同一源代码行上





JScript 运行时错误
JScript 运行时错误是指当 JScript 脚本试图执行一个系统不能运行的动作时导致的错误。当正在运行脚本、计算变量表达式、或者正在动态分配内存时出现JScript 运行时错误时。

以下是76个运行时错误



错误号 描述

十进制                  十六进制                     说明
5                          800A0005                            非法过程调用或参数

6                          800A0006                            溢出

7                   800A0007                   内存不足

9               800A0009            下标超界

10              800A000A            此数组被固定或临时锁定

11              800A000B            零除错误

13              800A000D            类型失配

14              800A000E            串空间不足

17              800A0011            不能执行所请求的操作

28              800A001C            栈空间不足

35              800A0023            子过程或函数未找到

48              800A0030            装载DLL出错

51              800A0033            内部出错

52              800A0034            坏文件名或数

53              800A0035            文件未找到

54              800A0036            坏文件模式

55              800A0037            文件已经打开

57              800A0039            设备I/O错误

58              800A003A            文件已经存在

61              800A003D            磁盘空间已满

62              800A003E            输入超出文件尾

67              800A0043            文件太多

68              800A0044            设备不可用

70              800A0046            权限禁用

71              800A0047            磁盘未准备好

74              800A004A            不能用不同的驱动重命名

75              800A004B            路径/文件访问错误

76              800A004C            路径未找到

91              800A005B            对象变量或With块变量未设置

92              800A005C            For循环未初始化

94              800A005E            Null使用无效

322             800A0042            不能建立所需的临时文件

424             800A01A8                   需要对象

429             800A01A9            Automation服务器不能建立对象

430             800A01AE            类不支持Automation

432             800A01B0            在Automation操作中找不到文件名或类名

438             800A01B6            对象不支持这个属性或方法

440             800A01B8            Automation错误

445             800A01BD                   对象不支持这个动作

446             800A01BE            对象不支持指定的参数

447             800A01BF            对象不支持当前区域设置

448             800A01C0            指定的参数未找到

449             800A01C1            参数不可选

450             800A01C2            错误的参数数目或非法属性分配

451             800A01C3            对象不是一个集合

453             800A01C5            指定的dll函数未找到

458             800A01CA            变量使用了一个Jscript不支持的Automation类型

462             800A01CE            远程服务器机器不存在或不可用

501             800A01F5            不能分配给变量

502             800A01F6            对象对于脚本不安全

503             800A01F7            对象对于初始化不安全

504             800A01F8            对象对建立不安全

5000                    800A1388                     不能分配给“this”            
5001                    800A1389                     需要 Number 类型
5002                    800A138A                     需要 Function 对象
5003                    800A138B                     不能给函数返回值赋值
5004                    800A138C                     不能索引对象

5005                    800A138D                     需要 String
5006                    800A138E                     需要 Date 对象
5007                    800A138F                     需要 Object 类型
5008                    800A1390                     非法赋值
5009                    800A1391                     未定义标识符
5010                    800A1392                     需要 Boolean
5011                            800A1393                     不能执行来自一个自由脚本的代码

5012                     800A1394                     需要对象的成员
5013                     800A1395                     需要 VBArray
5014                     800A1396                     需要 JScript 对象
5015                     800A1397                     需要 Enumerator 对象
5016                     800A1398                     需要正则表达式对象
5017                     800A1399                     正则表达式语法错误

5018                     800A139A                     未预期的限定符
5019                     800A139B                     正则表达式中缺少“]”
5020                     800A139C                     正则表达式中缺少“)”
5021                     800A139D                     字符集范围无效
5022                     800A139E                     异常抛出,但无法抓住
5023                     800A139F                     函数没有合法的 Prototype (原型)对象

5024                     800A13A0                     待解码的 URI 包含有非法字符
5025                     800A13A1                     待解码的 URI 编码非法
5026                     800A13A2                     小数部分的位数越界
5027                     800A13A3                     精度越界

5028                     800A13A4                     需要 Array 或 arguments 对象

5029                     800A13A5                     数组长度必须为一有限正整数
5030                     800A13A6                     必须赋给数组长度一个有限正数

集锦笑话

2007/05/26 23:44 ArthurXF
  1. 两只青蛙相爱了,结婚后生了一个蛤嫫,公青蛙见状大怒说:贱人,怎么回事 母青蛙哭着说:他爹,认识你之前我整过容。
 2. 小驴问老驴:为啥咱们天天吃干草,而奶牛顿顿精饲料 老驴叹到:咱爷们比不了,我们是靠跑腿吃饭,人家是靠胸脯吃饭!
 3. 鸭子和螃蟹赛跑,一起到达终点,难分胜负,裁判说:你们来个剪刀石头布吧 鸭子大怒:妈的,算计我?我一出是布,他总是剪刀。
 4. 狗对熊说:嫁给我吧,嫁给我你会幸福。熊说:才不嫁呢,嫁给你只会生狗熊,我要嫁给猫,生熊猫那才尊贵呢!
  5. 老鳖调戏河蚌,被咬,老鳖忍痛拖着河蚌来回爬,青蛙见了敬佩的说:乖乖,鳖哥混大了,出入都加着公文包。
 6. 蜜蜂狂追蝴蝶,蝴蝶却嫁给了蜗牛。蜜蜂不解:他哪里比我好 蝴蝶回答:人家好歹有自己的房子,哪像你住在集体宿舍。


现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。也可以联系我QQ:29011218。
PHP培训招生简章
Tags:

真正爱你的男人

2007/05/26 23:27 ArthurXF
  1.真正爱你的男人,一下子说不出真正爱你的理由,只知道自己顾不上注意别人。

  2.真正爱你的男人,其实总惹你生气,你却发觉不了他到底做错了什么。

  3.真正爱你的男人,很少当面赞美你,可是心里肯定你是他最棒的。

  4.真正爱你的男人,会在你忘记回复他短信时狠狠地说你一顿。

  5.真正爱你的男人,只可能在你一个人的面前流眼泪,当你触摸到他时,也触摸到了那颗只为你跳动的心。

  6.真正爱你的男人,会默默地记住你不经意说过的话,在某时某刻重复它们。

  7.真正爱你的男人,不会轻易做出承诺,因为他想让自己成为你心中说话最算话的男子汉,只想给你最可*最安全的幸福。

  8.真正爱你的男人,总告诉你不要胡思乱想,因为其实他在为你们谋划着最美丽真实的未来。同时让你无忧无虑地等待他要给你的惊喜。

  9.真正爱你的男人,可能不像你一样清楚地记得某些纪念日,他觉得爱你是每时每刻的,并不是*这几天简单的日子。

  10.真正爱你的男人,不会轻易对你当面说\"我爱你\",因为他为你做过的每件事都已经这么说了。除非在非常时刻,为了不让你无端地误解他。

  11.真正爱你的男人,总觉得有些话只说一遍就够了,因为你已经了解他的心。说得多了,他会觉得不珍贵。

  12.真正爱你的男人,如果他去机场接你,不会像你期望的那样捧着玫瑰大声叫\"亲爱的\",只是自然地提过你的行李,然后想用眼睛抱紧你似的心疼地说,怎么瘦得像豆芽菜了?

  13.真正爱你的男人,当你发脾气时,只会不做声地听你把火发完,然后慢慢地说,你明天有课吗?早点睡吧。

  14.真正爱你的男人,不懂当你生气挂掉电话后应该立即打来,过了若干小时后会发条短信问你消气了没有?如果你质问他为何这么久才打来,他会理直气壮的说,你生气时我的解释一定没有用,等你的火消了,我的解释才有效果。

  15.真正爱你的男人,总是叫你小姑娘,可是每次他做什么重大的决定,却总想先听听你的建议。

  16.真正爱你的男人,不喜欢玩具小毛熊,却一直把你送他的小熊放在床头。

  17.真正爱你的男人,当和你发生争执时,总是控制不了地先妥协,先承认\"我错了\",过后发来短信以\"神经病\"开头,以\"宝贝\"结尾。事实上你也清楚,这次是你有点无理取闹。

  18.真正爱你的男人,很想很想你时,也会买玫瑰送你,傻傻地等着你,却不知道自己捧的是月季。没关系,他的心里送的是玫瑰。

  19.真正爱你的男人,嘴巴都不甜,但是他的吻能传递他所有的热情。

  20.真正爱你的男人,当听到你对他讲很\"酸\"的话时,他反而会装得很正经,其实心里很甜很甜。

  21.真正爱你的男人,如果不能经常见到你,他会让自己忙碌起来,为了不去想你,因为他知道一想你将会一发不可收拾
这里的所实现的负载均衡是以www.linuxvirtualserver.org项目的ipvsadm为原型,配合以其他的一些开源软件来实现的。

在这里,我们需要四个组件:

· iptables

· ipvsadm, (http://www.linuxvirtualserver.org)

· keepalived, (http://keepalived.sourceforge.net)

· heartbeat , (http://www.linux-ha.org)

1,ipchains

ipchains 是Linux下很有名的Firewall软件,iptables在Linux的内核中对进出Linux的数据进行控制,包括数据包的过滤和伪装等。在 Linux的内核中有三条标准控制数据包去向的链:input , forward , output 。input是对进入Linux的数据包进行控制,forward是对路由的数据包进行控制,output是对出Linux的数据包进行控制。在我们的这个方案中iptables的作用是将用户的请求数据交给ipvsadm来处理,并由ipvsadm决定用户的请求数据最终由哪台web服务器来相应。大家也可参考IPTABLES-HOWTO。在此不多说。

2,ipvsadm(www.linuxvirtualserver.org)

ipvsadm是由中国的年轻黑客维护的,他是从ipportfw发展而来的。ipvsadm是在Linux的内核中实现的,他在Linux的内核中监测需要路由的IP数据包,ipvsadm根据用户设置的条件对数据包进行相应的操作。了解ipchains的用户知道,在Linux的内核中有三条控制数据包去向的链:input , forward , output,ipvsadm是在forward的过程中对数据包进行操作的。ipvsadm的作用是为用户选择合适的web服务器。LLB在选择服务器时有四种不同的规则,这四种规则用于选择哪台服务器处理用户的请求。这四种规则是:Round-Robin (RR)、 Weighted Round-Robin (WRR)、 Least-Connection (LC)、 Weighted Least-Connection (WLC)。这四种规则各有自己的适应环境。

Round-Robin:

如果您的LLB选用的是这种算法,她会将数据包均匀的分发给各台服务器,他把所有的服务器放在相等的地位上,而不会实际的去考虑各台服务器的差异,如响应时间、session数等!例如您有ABC三台服务器,那么LLB分发数据包的顺序是......ABCABCABC.....

Round-Robin算法的好处是简单、占用系统资源少,缺点是无法检测哪台服务器有更高的响应速度、更少的连接,所以他非常适合服务器性能相当的环境。

Weighted Round-Robin

这种规则适用于用户扩展系统时,因为这是集群中的服务器的性能会有较大的差别,为每一个服务器定义一个参数是必要的。

这是一种带参数的Round-Robin的算法,参数的名字叫Weighed。您可以根据您的服务器的处理能力来为每一台服务器分配一个Weighted 值,值越高其优先程度越高,默认值是1。例如:你有三台服务器,分别为A:486、B:奔腾、C:奔腾2,你可以为他们分配Weighted值为:1、 2、3,则按照Weighted Round-Robin的算法处理数据包的服务器的顺序是:CCCBBBA

Round-Robin可以说是Weighted Round-Robin的一种特殊情况,既所有的服务器有相同的Weighted值。

Least-Connection

这是一种动态算法,LLB将根据每台服务器当前的连接数目来转发数据包,具有最少连接的服务器将处理下一个请求。这一种算法能很好的分配各种流量,对于突发的请求或大量的请求能够做出比较平滑的处理,不会产生将请求的数据发往同一台服务器的情况。

Weighted Least-Connection

这种算法是Least-Connection Scheduling的一种扩展,她为每一台服务器分配一个weighted值,然后根据这个值和每台服务器当前状态下的连接数来决定由谁来处理用户的请求。可以举一个例子来说明她的工作原理:

假设有n台服务器,每一台服务器的weighted值为Wi ( i=1,2. . . n) ,session为Ci (i=1,...n), ALL-CONNECTIONS 是所有服务器的session和,既C1+C2+....+Cn.,那么按照下面的算法,服务器j将处理下一个请求:

( Cj/ALL-CONNECTIONS )/Wj=min { (Ci/ALL-CONNECTIONS)/Wi } ( i=1,..,n)

也可以简化为:Cj/Wj = min { Ci/Wi } (i=1,..,n)

我们可以对这四种算法做一个比较,Round-Robin和Weighted Round-Robin是静态的方法,对于服务器的当前状态不能做出很好的估计,因此数据的分配并不是最合理。

但在服务器的性能相当时Round-Robin却是最好的选择。Least-Connection 和Weighted Least-Connection是动态的方法,可以对服务器的当前状态做出比较合理的估计,这样在平衡各台服务器时,可以做出比较优化的选择。

3,Keepalived

keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

Layer3,4&5工作在IP/TCP协议栈的IP层,TCP层,及应用层,原理分别如下:

Layer3:Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3的方式是以服务器的IP地址是否有效作为服务器工作正常与否的标准。在本文中将采用这种方式。

Layer4:如果您理解了Layer3的方式,Layer4就容易了。Layer4主要以TCP端口的状态来决定服务器工作正常与否。如web server的服务端口一般是80,如果Keepalived检测到80端口没有启动,则Keepalived将把这台服务器从服务器群中剔除。

Layer5:Layer5就是工作在具体的应用层了,比Layer3,Layer4要复杂一点,在网络上占用的带宽也要大一些。 Keepalived将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则Keepalived将把服务器从服务器群中剔除。

4,Heartbeat

heartbeat是一种心跳检测机制。他可以让两台服务器(Master Server 和Slave Server)互为备份。Heartbeat的中文是“心跳检测”。Slave Server利用heartbeat来检测Master Master的当前状态,当Master Server不能工作时(如:down机)Slave Server通过heartbeat来接管Master Server的所有工作,这个接管过程在10秒以内完成,对用户来说没有什么察觉。Heartbeat中包含一个IP take over(IP 地址接管)的功能,此功能是通过ARP欺骗的手段来完成的。



现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
分页: 105/128 第一页 上页 100 101 102 103 104 105 106 107 108 109 下页 最后页 [ 显示模式: 摘要 | 列表 ]