LinuxåŒç½‘å¡ç»‘定实现就是ä‹É用两å—网å¡è™šæ‹Ÿæˆä¸ÞZ¸€å—网å¡ï¼Œ˜q™ä¸ªèšåˆèµäh¥çš„设备看èµäh¥æ˜¯ä¸€ä¸ªå•独的以太¾|‘接å£è®¾å¤‡ï¼Œé€šä¿—点讲ž®±æ˜¯ä¸¤å—¾|‘å¡å…ähœ‰ç›¸åŒçš„IP地å€è€Œåƈ行链接èšåˆæˆä¸€ä¸ªé€»è¾‘链èµ\工作。其实这™å?技术在Sunå’ŒCisco䏿—©å·²å˜åœ¨ï¼Œè¢«ç§°ä¸ºTrunkingå’ŒEtherchannel技术,在Linuxçš?.4.xçš„å†…æ æ€¸ä¹Ÿé‡‡ç”¨è¿™˜q™ç§æŠ€æœ¯ï¼Œè¢«ç§°ä¸ºbondingã€?什么是bonding需è¦ä»Ž¾|‘å¡çš„æØœæ?promisc)模å¼è¯´è“v。我们知é“,在æ£å¸¸æƒ…况下åQŒç½‘å¡åªæŽ¥æ”¶ç›®çš„¼‹¬äšg地å€(MAC Address)是自íw«Mac的以太网帧,对于别的数æ®å¸§éƒ½æ»¤æŽ‰åQŒä»¥å‡è½»é©±åЍ½E‹åºçš„负担。但是网å¡ä¹Ÿæ”¯æŒå¦å¤–一¿U被¿UîCØ“æ·äh‚promisc的模å¼ï¼Œå¯ä»¥æŽ¥æ”¶¾|‘络上所有的帧,bonding也è¿è¡Œåœ¨˜q™ä¸ªæ¨¡å¼ä¸‹ï¼Œè€Œä¸”修改了驱动程åºä¸çš„mac地å€åQŒå°†ä¸¤å—¾|‘å¡çš„Macåœ°å€æ”ÒŽˆç›¸åŒåQŒå¯ä»¥æŽ¥æ”¶ç‰¹å®šmac的数æ®å“áã€‚ç„¶åŽæŠŠç›¸åº”çš„æ•°æ®å“áä¼ é€ç»™bond驱动½E‹åºå¤„ç†ã€?/font>
BONDING_OPTS傿•°è§£é‡Š
æ¤å‚数用于指定网å¡ç»‘å®šæ—¶çš„å±žæ€§ï¼Œä»¥ä¸‹æ˜¯å¯¹å¸¸ç”¨å‚æ•°˜q›è¡Œçš„解释:
miimon傿•°åQšæŒ‡å®šç½‘å¡æ•…éšœæ—¶çš„åˆ‡æ¢æ—¶é—´é—´éš”以ms为å•ä½ã€?/span>
primary傿•°åQšæŒ‡å®šé»˜è®¤çš„ä¸È½‘å¡è®¾å¤‡ã€?/span>
mode傿•°åQ?/span>
0åQ轮询模å¼ï¼Œæ‰€¾l‘定的网å¡ä¼šé’ˆå¯¹è®‰K—®ä»¥è½®è¯¢ç®—法进行åã^分ã€?/span>
1åQ高å¯ç”¨æ¨¡å¼åQŒè¿è¡Œæ—¶åªä‹É用一个网å¡ï¼Œå…¶ä½™¾|‘å¡ä½œäؓ备䆾åQŒåœ¨è´Ÿè²ä¸è¶…˜q‡å•å—网å¡å¸¦å®½æˆ–压力时å¾è®®ä‹É用ã€?/span>
2åQ基äº?/span>HASH½Ž—法的负载å‡è¡¡æ¨¡å¼ï¼Œ¾|‘å¡çš„分‹¹æŒ‰ç…?/span>xmit_hash_policyçš?/span>TCPå议层设¾|®æ¥˜q›è¡ŒHASH计算分æµåQŒä‹Éå„ç§ä¸åŒå¤„ç†æ¥æºçš„访问都ž®½é‡åœ¨åŒä¸€ä¸ªç½‘å¡ä¸Š˜q›è¡Œå¤„ç†ã€?/span>
3åQå¹¿æ’æ¨¡å¼ï¼Œæ‰€æœ‰è¢«¾l‘定的网å¡éƒ½ž®†å¾—到相åŒçš„æ•°æ®åQŒä¸€èˆ¬ç”¨äºŽå分特ŒDŠçš„¾|‘络需求,如需è¦å¯¹ä¸¤ä¸ªäº’相没有˜qžæŽ¥çš„äº¤æ¢æœºå‘é€ç›¸åŒçš„æ•°æ®ã€?/span>
4åQ?/span>802.3abè´Ÿè²å‡è¡¡æ¨¡å¼åQŒè¦æ±‚äº¤æ¢æœºä¹Ÿæ”¯æŒ?/span>802.3ab模å¼åQŒç†è®ÞZ¸ŠæœåС噍åŠäº¤æ¢æœºéƒ½æ”¯æŒæ¤æ¨¡å¼æ—¶åQŒç½‘å¡å¸¦å®½æœ€é«˜å¯ä»¥ç¿»å€?/span>(如从1Gbps¾˜Õdˆ°2Gbps)
5åQ适é…å™¨è¾“å‡ø™´Ÿè½½å‡è¡¡æ¨¡å¼ï¼Œè¾“出的数æ®ä¼šé€šè¿‡æ‰€æœ‰è¢«¾l‘定的网å¡è¾“å‡ºï¼ŒæŽ¥æ”¶æ•°æ®æ—¶åˆ™åªé€‰å®šå…¶ä¸ä¸€å—网å¡ã€‚如果æ£åœ¨ç”¨äºŽæŽ¥æ”¶æ•°æ®çš„¾|‘å¡å‘生故障åQŒåˆ™ç”±å…¶ä»–ç½‘å¡æŽ¥½Ž¡ï¼Œè¦æ±‚所用的¾|‘å¡åŠç½‘å¡é©±åЍå¯é€šè¿‡ethtool命ä×o得到speedä¿¡æ¯ã€?/span>
6åQ适é…器输å…?/span>/输出负è²å‡è¡¡æ¨¡å¼åQŒåœ¨"模å¼5"的基¼‹€ä¸Šï¼Œåœ¨æŽ¥æ”¶æ•°æ®çš„åŒæ—¶å®žçŽ°è´Ÿè²å‡è¡¡åQŒé™¤è¦æ±‚ethtool命ä×oå¯å¾—åˆ?/span>speedä¿¡æ¯å¤–,˜q˜è¦æ±‚支æŒå¯¹¾|‘å¡MAC地å€çš„动æ€ä¿®æ”¹åŠŸèƒ½ã€?/span>
xmit_hash_policy傿•°(æ¤å‚数对mode傿•°ä¸çš„2ã€?/span>4æ¨¡å¼æœ‰åª„å“?/span>)åQ?/span>
layer1åQ通过MAC地倘q›è¡ŒHASH计算ã€?/span>
计算公å¼åQ?/span>(MACsrcâŠ?/span>MACdest)% Nslave
layer3+4åQ通过TCPå?/span>UDP端å£åŠå…¶IP地倘q›è¡ŒHASH计算ã€?/span>
计算公å¼åQ?/span>((portsrcâŠ?/span>portdest)âŠ?/span>(IPsrcâŠ?/span>IPdest)) % Nslave
注æ„åQ?/font>
mode傿•°ä¸çš„0ã€?/span>2ã€?/span>3ã€?/span>4模å¼è¦æ±‚äº¤æ¢æœºæ”¯æŒ?/span>"ports group"功能òq¶èƒ½˜q›è¡Œç›¸åº”的设¾|®ï¼Œä¾‹å¦‚åœ?/span>Ciscoä¸è¦ž®†æ‰€˜qžæŽ¥çš„端å£è®¾ä¸?/span>"trunk group"ã€?/span>
选择¾l‘定模å¼çš„å¾è®?/font>
如果¾pÈ»Ÿ‹¹é‡ä¸è¶…˜q‡å•个网å¡çš„带宽åQŒè¯·ä¸è¦é€‰æ‹©ä½¿ç”¨mode 1之外的模å¼ï¼Œå› äØ“è´Ÿè²å‡è¡¡éœ€è¦å¯¹‹¹é‡˜q›è¡Œè®¡ç®—åQŒè¿™å¯¹ç³»¾lŸæ€§èƒ½ä¼šæœ‰æ‰€æŸè€—ã€?/span>
廸™®®mode 5ã€?/span>mode 6åªåœ¨äº¤æ¢æœÞZ¸æ”¯æŒ"ports group"的情况下选用ã€?/span>
å¦‚æžœäº¤æ¢æœºåо|‘å¡éƒ½ç¡®è®¤æ”¯æŒ?/span>802.3abåQŒåˆ™å®žçŽ°è´Ÿè²å‡è¡¡æ—¶å°½é‡ä‹Éç”?/span>mode 4以æé«˜ç³»¾lŸæ€§èƒ½
修改é…置文äšg:hibernate.cfg.xml
æ ÒŽ®˜q行环境æ·ÕdР如䏋é…ç½®åQ?/font>
1åQ‰åœ¨å®¹å™¨ä¸è¿è¡Œï¼š
jta
2) 独立˜q行åQ?/font>
thread
安装JBoss
[jboss@node1 ~]$ unzip jboss-4.0.5.GA.zip
[jboss@node1 ~]$ vi JBOSS_HOME/bin/run.conf
æ·ÕdŠ JAVA_HOME,查找òq¶å°†¾U¢è‰²ä¸€è¡?/font>
30 # be defined to $JAVA_HOME/bin/java, else $JAVA will be "java".
31 #
32 #JAVA_HOME="/opt/java/jdk"
æ›¿æ¢æˆ?/font>
30 # be defined to $JAVA_HOME/bin/java, else $JAVA will be "java".
31 #
32 JAVA_HOME="/home/jboss/jdk1.5.0_14" //ä½ çš„JDK安装路径
使用":wq"ä¿å˜é€€å‡?/font>
2.6 JBossçš„å¯åŠ¨å’Œå…³é—
½H—å£å¯åŠ¨æ–¹å¼åŠåŽå°å¯åŠ¨æ–¹å¼ï¼ˆäº‹å®žä¸Šï¼Œ˜q™ç§å¯åŠ¨æ˜¯é»˜è®¤æ‰§è¡Œäº†ä¸€ä¸ªå¯åЍ傿•°run.sh -c default,在JBOSS_HOME/server/ä¸ï¼Œæœ‰jboss的三¿Ué…¾|®ï¼šall,default,minimalã€‚ä½ ä¹Ÿå¯ä»¥è‡ªå·±å¤åˆ¶å…¶ä¸çš„æ–‡äšg夹,命å䏸™‡ªå·Þqš„æœåŠ¡åQŒå¦‚åQšmyserveråQŒå¯åŠ¨çš„æ—¶å€™åªéœ€è¦run.sh -c myserverž®Þp¡Œäº†ã€‚)åQ?/font>
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh //å¯åŠ¨åŽæ¤½H—å£ä¸èƒ½å†åšä»–用
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh & //å¯åŠ¨åŽæ¤½H—壘q˜å¯¾l§ç®‹˜q›è¡Œå…¶ä»–æ“作
½H—å£å¯åŠ¨æ–¹å¼åŠåŽå°å¯åŠ¨æ–¹å¼çš„å…³é—åQ?/font>
½H—å£å¯åŠ¨æ–¹å¼çš„,在椽H—å£ç›´æŽ¥æŒ‰â€œCtrl+Câ€å°±è¡Œäº†
[jboss@node1 ~]$ JBOSS_HOME/bin/shutdown.sh -S //åŽå°å¯åŠ¨æ–¹å¼çš„å…³é—?/font>
注æ„åQšä¸Šé¢æ‰€è¯´çš„JBoss4.0.5.GAçš„è¿è¡Œä¸Žå…³é—æ–¹å¼åQŒç”±äºŽJBoss的厾l版本(4.2.0GA+åQ‰åšäº†å®‰å…¨ä¿®æ”¹ï¼Œä¸åƒJBoss4.0.5.GAé‚£æ ·åQŒé»˜è®¤å°±æ˜¯å¯åŠ¨äº†å…¨å±€æš´éœ²åQˆå°±æ˜¯å¤–IP都å¯ä»¥è®¿é—®ï¼‰åQŒè€Œæ˜¯éœ€è¦å¢žåŠ ä¸€ä¸ªå¯åЍ傿•ŽÍ¼Œæ‰èƒ½è¢«å¤–IP讉K—®åQŒå› æ¤å¯åŠ¨å‘½ä»¤å˜æˆï¼š
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh -b ä½ çš„IPåœ°å€ //暴露æ¤IP上的jbossæœåŠ¡åQŒå¦‚果一个机器上æœ?以上的ip呢?如下命ä×oåQŒæš´éœ²æ‰€æœ‰ip上的jbossæœåŠ¡
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh -b 0.0.0.0
éšä¹‹å…³é—命åä¹Ÿå°±å˜æˆåQ?/font>
[jboss@node1 ~]$ JBOSS_HOME/bin/shutdown.sh -S -s ä½ çš„IP地å€
JBoss集群é…ç½®
3.3.1 åŠ å…¥é›†ç¾¤åQ?/font>
¾~–辑JBOSS_HOME/server/all/deploy/jbossweb-tomcat50.sar/server.xmlæ–‡äšgåQˆåœ¨jbossä¸ï¼Œall的酾|®å°±æ˜¯é›†¾Ÿ¤é…¾|®ï¼Œè€Œjbossweb-tomcat50.sar是jboss4.0.5.GA的酾|®ï¼Œåœ?.2.0+里是jboss-web.deployeråQ‰ï¼š
<Engine name="jboss.web" defaultHost="localhost">
... ...
</Engine>
�
<Engine name="jboss.web" defaultHost="localhost"
jvmRoute="node1">
... ...
</Engine>
<!--å…¶ä¸åQŒnode1䏸™Š‚点ååQŒä¸Žå‰é¢mod_jk那里的workers.properties里的节点对应-->
3.3.2 ‹È€‹z»mod_jk
¾~–辑JBOSS_HOME/server/all/deploy/jbossweb-tomcat50.sar/META-INF/
jboss-service.xmlæ–‡äšgåQ?/font>
<attribute name="UseJK">fasle</attribute>
<!--æ”¹äØ“ -->
<attribute name="UseJK">true</attribute>
3.3.3 é…置应用集群
Sessionå¤åˆ¶åQ?/font>
修改YOURAPP/WEB-INF/web.xmlæ–‡äšgåQŒåœ¨web.xmlæ–‡äšgçš„å¼€å¤´å¢žåŠ distributableåQ?/font>
<?xml version="1.0"?>
<web-app http://java.sun.com/xml/ns/j2ee="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<distributable/>
<!-- ... -->
</web-app>
é…ç½®Sessionå¤åˆ¶æ¨¡å¼åQ?/font>
å¢žåŠ YOURAPP/WEB-INF/jboss-web.xmlæ–‡äšgåQŒæ·»åŠ å¦‚ä¸‹å†…å®¹ï¼ˆ˜q™éƒ½æ˜¯é»˜è®¤ï¼Œå…·ä½“çš„è¦æ ÒŽ®ä½ 的应用ã€è¿è¡ŒçŽ¯å¢ƒæ¥é…ç½®åQŒå¯å‚考《JBossä¼ä¸š¾U§åº”用æœåŠ¡åã^å°ç¾¤é›†æŒ‡å—》的英文官方文档åQ‰ï¼š
<?xml version="1.0"?>
<jboss-web>
<replication-config>
<replication-trigger>SET_AND_NON_PRIMITIVE_GET</replication-trigger>
<replication-granularity>SESSION</replication-granularity>
<replication-field-batch-mode>true</replication-field-batch-mode>
</replication-config>
</jboss-web>
3.4 JBoss集群的å¯åŠ¨ä¸Žå…³é—
与å‰é¢çš„å•个jbosså¯åŠ¨å’Œå…³é—ä¸€æ øP¼Œåªæ˜¯åœ¨å¯åŠ¨å‘½ä»¤é‡Œçš„æŠŠdefaultæ¢æˆäº†allåQ?/font>
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh -c all
3.5 JBoss集群下的应用½E‹åºéƒ¨çÖvåŠå¸è½?/font>
JBoss集群里有个farmingæœåŠ¡åQŒå³çƒéƒ¨¾|²åº”用归档文ä»?(例如, EARåŒ? WAR 包或æ˜?SAR åŒ…ã€‚ä¸æ˜¯æ–‡ä»¶å¤¹åŽé¢åŠ ä¸ª".war"的那¿U)ã€?/font>
ž®†ä½ çš„åº”ç”¨ç¨‹åºæ‰“好EAR½{‰å½’档文件包攑ֈ°é›†ç¾¤ä¸ä“Qæ„一å°JBossçš?[JBOSS_HOME/server/all/farm]æ–‡äšg夹ä¸åQ?JBoss会自动的å¤åˆ¶æ¤åº”用归档文件到集群ä¸çš„其他节点òq¶å®Œæˆéƒ¨¾|ŒÓ€?/font>
在è¿è¡Œçš„JBoss集群æœåŠ¡ä¸ï¼Œä»Žä“Q何一个节点的farm/ ç›®å½•ä¸‹åˆ é™¤åº”ç”¨ï¼Œåº”ç”¨½E‹åºé¦–先从本地å¸è½½ï¼Œç„¶åŽå†ä»Žé›†ç¾¤ä¸å…¶ä»–æœåŠ¡èŠ‚ç‚¹çš„farmç›®å½•åˆ é™¤åº”ç”¨ã€?/font>
3.6 å…¶ä»–
ä¸Šé¢æ‰€åšçš„é…置和修攚wƒ½æ˜¯ä‹É用Apacheåšå‰ç«¯HTTPè´Ÿè²çš„æ–¹å¼ï¼Œå¦‚果使用其他¼‹¬äšg产å“åšå‰ç«¯è´Ÿè½½ï¼ˆå¦‚:F5åQ‰ï¼Œåˆ™JBossä¸éœ€è¦ä¿®æ”¹ï¼Œåªéœ€ä½¿ç”¨[JBOSS_HOME/bin/run.sh –c all]å¯åЍå›_¯ã€‚åŒæ—Óž¼Œä¸ç®¡å“ªç§æ–¹å¼åQŒJBoss都是è¦åœ¨åŒä¸€ä¸ªç½‘ŒDµä¸åQˆå¦‚åQ?92.168.1.*åQ‰ã€?/font>
好了åQŒåˆ°æ¤jboss的简å•群集酾|®å®Œæ¯•。水òqÏxœ‰é™ï¼Œé”™è¯¯ä¹‹å¤„误‚°…解。也希望大家的完善ã€?/font>