±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ
dotNET¿çƽ̨£¬½«´Ó ZooKeeper ÔËÐÐģʽ¡¢¼¯Èº×é³É¡¢ÈÝÔÖºÍˮƽÀ©ÈÝËÄ·½ÃæÖð²½ÉîÈ룬×îÖÕ¹¹½¨³ö¸ß¿ÉÓõÄ
ZooKeeper ¼¯Èº¡£
|
|
ÔËÐÐģʽ
Zookeeper ÓÐÈýÖÖÔËÐÐģʽ£ºµ¥»úģʽ¡¢Î±¼¯ÈºÄ£Ê½ºÍ¼¯ÈºÄ£Ê½¡£
µ¥»úģʽ
ÕâÖÖģʽһ°ãÊÊÓÃÓÚ¿ª·¢²âÊÔ»·¾³£¬Ò»·½ÃæÎÒÃÇûÓÐÄÇô¶à»úÆ÷×ÊÔ´£¬ÁíÍâ¾ÍÊÇÆ½Ê±µÄ¿ª·¢µ÷ÊÔ²¢²»ÐèÒª¼«ºÃµÄÎȶ¨ÐÔ¡£
ÔÚ Linux »·¾³ÏÂÔËÐе¥»úģʽÐèÒªÖ´ÐÐÒÔϲ½Ö裺
1. ×¼±¸ Java ÔËÐл·¾³
°²×° Java 1.6 »ò¸ü¸ß°æ±¾µÄ JDK£¬²¢ÅäÖúà Java Ïà¹ØµÄ»·¾³±äÁ¿ $JAVA_HOME
¡£
2. ÏÂÔØ ZooKeeper °²×°°ü
ÏÂÔØµØÖ·£ºhttp://zookeeper.apache.org/releases.html¡£Ñ¡Ôñ×îеÄ
stable °æ±¾²¢½âѹµ½Ö¸¶¨Ä¿Â¼£¬ÎÒÃÇÓà $ZK_HOME ±íʾ¸ÃĿ¼¡£
3. ÅäÖÃ zoo.cfg
Ê×´ÎʹÓà ZooKeeper£¬ÐèÒª½« $ZK_HOME Ï嵀 zoo_sample.cfg
ÎļþÖØÃüÃûΪ zoo.cfg£¬²¢½øÐÐÒÔÏÂÅäÖÃ
tickTime=2000
##Zookeeper×îСʱ¼äµ¥Ôª£¬µ¥Î»ºÁÃë(ms)£¬Ä¬ÈÏֵΪ3000
dataDir=/var/lib/zookeeper ##Zookeeper·þÎñÆ÷´æ´¢¿ìÕÕÎļþµÄĿ¼£¬±ØÐëÅäÖÃ
dataLogDir=/var/lib/log ##Zookeeper·þÎñÆ÷´æ´¢ÊÂÎñÈÕÖ¾µÄĿ¼£¬Ä¬ÈÏΪdataDir
clientPort=2181 ##·þÎñÆ÷¶ÔÍâ·þÎñ¶Ë¿Ú£¬Ò»°ãÉèÖÃΪ2181
initLimit=5 ##Leader·þÎñÆ÷µÈ´ýFollowerÆô¶¯²¢Íê³ÉÊý¾Ýͬ²½µÄʱ¼ä£¬Ä¬ÈÏÖµ10£¬±íʾtickTimeµÄ10±¶
syncLimit=2 ##Leader·þÎñÆ÷ºÍFollowerÖ®¼ä½øÐÐÐÄÌø¼ì²âµÄ×î´óÑÓʱʱ¼ä£¬Ä¬ÈÏÖµ5£¬±íʾtickTimeµÄ5±¶
|
4. Æô¶¯·þÎñ
ʹÓà $ZK_HOME/bin Ŀ¼Ï嵀 zkServer.sh ½Å±¾½øÐзþÎñµÄÆô¶¯¡£
¼¯ÈºÄ£Ê½
Ò»¸ö ZooKeeper ¼¯ÈºÍ¨³£ÓÉÒ»×é»úÆ÷×é³É£¬Ò»°ã 3 ̨ÒÔÉϾͿÉÒÔ×é³ÉÒ»¸ö¿ÉÓÃµÄ ZooKeeper
¼¯ÈºÁË¡£
×é³É ZooKeeper ¼¯ÈºµÄÿ̨»úÆ÷¶¼»áÔÚÄÚ´æÖÐά»¤µ±Ç°µÄ·þÎñÆ÷״̬£¬²¢ÇÒÿ̨»úÆ÷Ö®¼ä¶¼»á»¥Ïà±£³ÖͨÐÅ¡£ÖØÒªµÄÒ»µãÊÇ£¬Ö»Òª¼¯ÈºÖдæÔÚ³¬¹ýÒ»°ëµÄ»úÆ÷Äܹ»Õý³£¹¤×÷£¬ÄÇôÕû¸ö¼¯Èº¾ÍÄܹ»Õý³£¶ÔÍâ·þÎñ¡£
ZooKeeper µÄ¿Í»§¶Ë³ÌÐò»áÑ¡ÔñºÍ¼¯ÈºÖеÄÈÎÒâһ̨·þÎñÆ÷´´½¨Ò»¸ö TCP Á¬½Ó£¬¶øÇÒÒ»µ©¿Í»§¶ËºÍ·þÎñÆ÷¶Ï¿ªÁ¬½Ó£¬¿Í»§¶Ë¾Í»á×Ô¶¯Á¬½Óµ½¼¯ÈºÖÐµÄÆäËû·þÎñÆ÷¡£

ÄÇôÈçºÎÔËÐÐ ZooKeeper ¼¯ÈºÄ£Ê½ÄØ£¿Ê×ÏȼÙÈçÎÒÃÇÓÐÈý̨·þÎñÆ÷£¬IP ·Ö±ðΪ IP1¡¢IP2
ºÍ IP3£¬ÔòÐèÒªÖ´ÐÐÒÔϲ½Ö裺
1. ×¼±¸ Java ÔËÐл·¾³£¨Í¬ÉÏ£©
2. ÏÂÔØ ZooKeeper °²×°°ü£¨Í¬ÉÏ£©
3. ÅäÖÃ zoo.cfg
tickTime=2000
dataDir=/var/lib/zookeeper
dataLogDir=/var/lib/log
clientPort=2181
initLimit=5
syncLimit=2
server.1=IP1:2888:3888
server.2=IP2:2888:3888
server.3=IP3:2888:3888 |
¿ÉÒÔ¿´µ½£¬Ïà±ÈÓÚµ¥»úģʽ£¬¼¯ÈºÄ£Ê½¶àÁË server.id=host:port1:port2 µÄÅäÖá£ÆäÖУ¬id
±»³ÆÎª Server ID£¬ÓÃÀ´±êʶ¸Ã»úÆ÷ÔÚ¼¯ÈºÖеĻúÆ÷ÐòºÅ£¨ÔÚÿ̨»úÆ÷µÄ dataDir Ŀ¼Ï´´½¨
myid Îļþ£¬ÎļþÄÚÈݼ´Îª¸Ã»úÆ÷¶ÔÓ¦µÄ Server ID Êý×Ö£©¡£host Ϊ»úÆ÷ IP£¬port1
ÓÃÓÚÖ¸¶¨ Follower ·þÎñÆ÷Óë Leader ·þÎñÆ÷½øÐÐͨÐźÍÊý¾Ýͬ²½µÄ¶Ë¿Ú£¬port2 ÓÃÓÚ½øÐÐ
Leader Ñ¡¾Ù¹ý³ÌÖеÄͶƱͨÐÅ¡£
4. ´´½¨ myid Îļþ
ÔÚ dataDir Ŀ¼Ï´´½¨ÃûΪ myid µÄÎļþ£¬ÔÚÎļþµÚÒ»ÐÐдÉ϶ÔÓ¦µÄ Server
ID¡£
5. °´ÕÕÏàͬ²½Ö裬ΪÆäËû»úÆ÷ÅäÖà zoo.cfg ºÍ myidÎļþ
6. Æô¶¯·þÎñ
α¼¯ÈºÄ£Ê½
ÕâÊÇÒ»ÖÖÌØÊâµÄ¼¯ÈºÄ£Ê½£¬¼´¼¯ÈºµÄËùÓзþÎñÆ÷¶¼²¿ÊðÔÚһ̨»úÆ÷ÉÏ¡£µ±ÄãÊÖÍ·ÉÏÓÐһ̨±È½ÏºÃµÄ»úÆ÷£¬Èç¹û×÷Ϊµ¥»úģʽ½øÐв¿Ê𣬾ͻáÀË·Ñ×ÊÔ´£¬ÕâÖÖÇé¿öÏ£¬ZooKeeperÔÊÐíÄãÔÚһ̨»úÆ÷ÉÏͨ¹ýÆô¶¯²»Í¬µÄ¶Ë¿ÚÀ´Æô¶¯¶à¸ö
ZooKeeper ·þÎñʵÀý£¬ÒÔ´ËÀ´ÒÔ¼¯ÈºµÄÌØÐÔÀ´¶ÔÍâ·þÎñ¡£
ÕâÖÖģʽÏ£¬Ö»ÐèÒª°Ñ zoo.cfg ×öÈçÏÂÐ޸ģº
tickTime=2000
dataDir=/var/lib/zookeeper
dataLogDir=/var/lib/log
clientPort=2181
initLimit=5
syncLimit=2
server.1=IP1:2888:3888
server.2=IP1:2889:3889
server.3=IP1:2890:3890 |
¼¯Èº×é³É
Òª´î½¨Ò»¸ö¸ß¿ÉÓÃµÄ ZooKeeper ¼¯Èº£¬ÎÒÃÇÊ×ÏÈÐèҪȷ¶¨ºÃ¼¯ÈºµÄ¹æÄ£¡£¹ØÓÚ ZooKeeper
¼¯ÈºµÄ·þÎñÆ÷×é³É£¬ÏàÐźܶà¶Ô ZooKeeper Á˽⵫ÊÇÀí½â²»¹»ÉîÈëµÄ¶ÁÕߣ¬¶¼´æÔÚ»òÔø¾´æÔÚ¹ýÕâÑùÒ»¸ö´íÎóµÄÈÏʶ£ºÎªÁËʹµÃ
ZooKeeper ¼¯ÈºÄܹ»Ë³ÀûµØÑ¡¾Ù³ö Leader£¬±ØÐ뽫 ZooKeeper ¼¯ÈºµÄ·þÎñÆ÷Êý²¿Êð³ÉÆæÊý¡£ÕâÀïÎÒÃÇÐèÒª³ÎÇåµÄÒ»µãÊÇ£ºÈÎÒą̂
ZooKeeper ·þÎñÆ÷¶¼Äܲ¿ÊðÇÒÄÜÕý³£ÔËÐС£
ÄÇô´æÔÚÓÚÕâô¶à¶ÁÕßÖеÄÕâ¸ö´íÎóÈÏʶÊÇÔõô»ØÊÂÄØ£¿Æäʵ¹ØÓÚ ZooKeeper ¼¯Èº·þÎñÆ÷Êý£¬ZooKeeper
¹Ù·½È·Êµ¸ø³öÁ˹ØÓÚÆæÊýµÄ½¨Ò飬µ«¾ø´ó²¿·Ö ZooKeeper Óû§¶ÔÓÚÕâ¸ö½¨ÒéÈÏʶÓÐÆ«²î¡£ÔÚ±¾ÊéÇ°ÃæÌáµ½µÄ¡°¹ý°ë´æ»î¼´¿ÉÓá±ÌØÐÔÖУ¬ÎÒÃÇÒѾÁ˽âÁË£¬Ò»¸ö
ZooKeeper ¼¯ÈºÈç¹ûÒª¶ÔÍâÌṩ¿ÉÓõķþÎñ£¬ÄÇô¼¯ÈºÖбØÐëÒªÓйý°ëµÄ»úÆ÷Õý³£¹¤×÷²¢Çұ˴ËÖ®¼äÄܹ»Õý³£Í¨ÐÅ¡£»ùÓÚÕâ¸öÌØÐÔ£¬Èç¹ûÏë´î½¨Ò»¸öÄܹ»ÔÊÐí
N ̨»úÆ÷ down µôµÄ¼¯Èº£¬ÄÇô¾ÍÒª²¿ÊðÒ»¸öÓÉ 2*N+1 ̨·þÎñÆ÷¹¹³ÉµÄ ZooKeeper
¼¯Èº¡£Òò´Ë£¬Ò»¸öÓÉ 3 ̨»úÆ÷¹¹³ÉµÄ ZooKeeper ¼¯Èº£¬Äܹ»ÔÚ¹Òµô 1 ̨»úÆ÷ºóÒÀÈ»Õý³£¹¤×÷£¬¶ø¶ÔÓÚÒ»¸öÓÉ
5 ̨·þÎñÆ÷¹¹³ÉµÄ ZooKeeper ¼¯Èº£¬Äܹ»¶Ô 2 ̨»úÆ÷¹ÒµôµÄÇé¿ö½øÐÐÈÝÔÖ¡£×¢Ò⣬Èç¹ûÊÇÒ»¸öÓÉ6̨·þÎñÆ÷¹¹³ÉµÄ
ZooKeeper ¼¯Èº£¬Í¬ÑùÖ»Äܹ»¹Òµô 2 ̨»úÆ÷£¬ÒòΪÈç¹û¹Òµô 3 ̨£¬Ê£ÏµĻúÆ÷¾ÍÎÞ·¨ÊµÏÖ¹ý°ëÁË¡£
Òò´Ë£¬´ÓÉÏÃæµÄ½²½âÖУ¬ÎÒÃÇÆäʵ¿ÉÒÔ¿´³ö£¬¶ÔÓÚÒ»¸öÓÉ 6 ̨»úÆ÷¹¹³ÉµÄ ZooKeeper ¼¯ÈºÀ´Ëµ£¬ºÍÒ»¸öÓÉ
5 ̨»úÆ÷¹¹³ÉµÄ ZooKeeper ¼¯Èº£¬ÆäÔÚÈÝÔÖÄÜÁ¦Éϲ¢Ã»ÓÐÈκÎÏÔÖøµÄÓÅÊÆ£¬·´¶ø¶àÕ¼ÓÃÁËÒ»¸ö·þÎñÆ÷×ÊÔ´¡£»ùÓÚÕâ¸öÔÒò£¬ZooKeeper
¼¯ÈºÍ¨³£Éè¼Æ²¿Êð³ÉÆæÊý̨·þÎñÆ÷¼´¿É¡£
ÈÝÔÖ
ËùνÈÝÔÖ£¬ÔÚ IT ÐÐҵͨ³£ÊÇÖ¸ÎÒÃǵļÆËã»úÐÅϢϵͳ¾ßÓеÄÒ»ÖÖÔÚÔâÊÜÖîÈç»ðÔÖ¡¢µØÕ𡢶ϵçºÍÆäËû»ù´¡ÍøÂçÉ豸¹ÊÕϵȻÙÃðÐÔÔÖÄѵÄʱºò£¬ÒÀÈ»Äܹ»¶ÔÍâÌṩ¿ÉÓ÷þÎñµÄÄÜÁ¦¡£
¶ÔÓÚһЩÆÕͨµÄÓ¦Óã¬ÎªÁË´ïµ½ÈÝÔÖ±ê×¼£¬Í¨³£ÎÒÃÇ»áÑ¡ÔñÔÚ¶ą̀»úÆ÷ÉϽøÐв¿ÊðÀ´×é³ÉÒ»¸ö¼¯Èº£¬ÕâÑù¼´Ê¹ÔÚ¼¯ÈºµÄһ̨»òÊÇÈô¸Ę́»úÆ÷³öÏÖ¹ÊÕϵÄÇé¿öÏ£¬Õû¸ö¼¯ÈºÒÀÈ»Äܹ»¶ÔÍâÌṩ¿ÉÓõķþÎñ¡£
¶ø¶ÔÓÚһЩºËÐÄÓ¦Ó㬲»½öҪͨ¹ýʹÓöą̀»úÆ÷¹¹½¨¼¯ÈºµÄ·½Ê½À´Ìṩ·þÎñ£¬¶øÇÒ»¹Òª½«¼¯ÈºÖеĻúÆ÷²¿ÊðÔÚÁ½¸ö»ú·¿£¬ÕâÑùµÄ»°£¬¼´Ê¹ÆäÖÐÒ»¸ö»ú·¿ÔâÓöÔÖÄÑ£¬ÒÀÈ»Äܹ»¶ÔÍâÌṩ¿ÉÓõķþÎñ¡£
ÉÏÃæ½²µ½µÄ¶¼ÊÇÓ¦ÓòãÃæµÄÈÝÔÖģʽ£¬ÄÇô¶ÔÓÚ ZooKeeper ÕâÖֵײã×é¼þÀ´Ëµ£¬ÈçºÎ½øÐÐÈÝÔÖÄØ£¿½²µ½ÕâÀ¿ÉÄܶàÉÙ¶ÁÕß»áÓÐÒÉÎÊ£¬ZooKeeper
¼ÈÈ»ÒѾ½â¾öÁ˵¥µãÎÊÌ⣬ÄÇΪʲô»¹Òª½øÐÐÈÝÔÖÄØ£¿
µ¥µãÎÊÌâ
µ¥µãÎÊÌâÊÇ·Ö²¼Ê½»·¾³ÖÐ×î³£¼ûÒ²ÊÇ×î¾µäµÄÎÊÌâÖ®Ò»£¬Ôںܶà·Ö²¼Ê½ÏµÍ³Öж¼»á´æÔÚÕâÑùµÄµ¥µãÎÊÌâ¡£¾ßÌåµØËµ£¬µ¥µãÎÊÌâÊÇÖ¸ÔÚÒ»¸ö·Ö²¼Ê½ÏµÍ³ÖУ¬Èç¹ûijһ¸ö×é¼þ³öÏÖ¹ÊÕϾͻáÒýÆðÕû¸öϵͳµÄ¿ÉÓÃÐÔ´ó´óϽµÉõÖÁÊÇ´¦ÓÚ̱»¾×´Ì¬£¬ÄÇôÎÒÃǾÍÈÏΪ¸Ã×é¼þ´æÔÚµ¥µãÎÊÌâ¡£
ZooKeeper ȷʵÒѾºÜºÃµØ½â¾öÁ˵¥µãÎÊÌâ¡£ÎÒÃÇÒѾÁ˽⵽£¬»ùÓÚ¡°¹ý°ë¡±Éè¼ÆÔÔò£¬ZooKeeper
ÔÚÔËÐÐÆÚ¼ä£¬¼¯ÈºÖÐÖÁÉÙÓйý°ëµÄ»úÆ÷±£´æÁË×îеÄÊý¾Ý¡£Òò´Ë£¬Ö»Òª¼¯ÈºÖг¬¹ý°ëÊýµÄ»úÆ÷»¹Äܹ»Õý³£¹¤×÷£¬Õû¸ö¼¯Èº¾ÍÄܹ»¶ÔÍâÌṩ·þÎñ¡£
ÈÝÔÖ
½â¾öÁ˵¥µãÎÊÌ⣬ÊDz»ÊǸÿ¼ÂÇÈÝÔÖÁËÄØ£¿´ð°¸ÊÇ·ñ¶¨µÄ£¬Ôڴһ¸ö¸ß¿ÉÓõļ¯ÈºµÄʱºòÒÀÈ»ÐèÒª¿¼ÂÇÈÝÔÖÎÊÌâ¡£ÕýÈçÉÏÃæ½²µ½µÄ£¬Èç¹û¼¯ÈºÖг¬¹ý°ëÊýµÄ»úÆ÷»¹ÔÚÕý³£¹¤×÷£¬¼¯Èº¾ÍÄܹ»¶ÔÍâÌṩÕý³£µÄ·þÎñ¡£ÄÇô£¬Èç¹ûÕû¸ö»ú·¿³öÏÖÔÖÄÑÐÔµÄʹʣ¬ÕâʱÏÔÈ»ÒѾ²»Êǵ¥µãÎÊÌâµÄ·¶³ëÁË¡£
ÔÚ½øÐÐ ZooKeeper µÄÈÝÔÖ·½°¸Éè¼Æ¹ý³ÌÖУ¬ÎÒÃÇÒª³ä·Ö¿¼Âǵ½¡°¹ý°ëÔÔò¡±¡£Ò²¾ÍÊÇ˵£¬ÎÞÂÛ·¢ÉúʲôÇé¿ö£¬ÎÒÃDZØÐë±£Ö¤
ZooKeeper ¼¯ÈºÖÐÓг¬¹ý°ëÊýµÄ»úÆ÷Äܹ»Õý³£¹¤×÷¡£Òò´Ë£¬Í¨³£ÓÐÒÔÏÂÁ½ÖÖ²¿Êð·½°¸¡£
Ë«»ú·¿²¿Êð
ÔÚ½øÐÐÈÝÔÖ·½°¸µÄÉè¼ÆÊ±£¬ÎÒÃÇͨ³£ÊÇÒÔ»ú·¿Îªµ¥Î»À´¿¼ÂÇÎÊÌâ¡£ÔÚÏÖʵÖУ¬ºÜ¶à¹«Ë¾µÄ»ú·¿¹æÄ£²¢²»´ó£¬Òò´ËË«»ú·¿²¿ÊðÊǸö±È½Ï³£¼ûµÄ·½°¸¡£µ«ÊÇÒź¶µÄÊÇ£¬ÔÚĿǰ°æ±¾µÄ
ZooKeeper ÖУ¬»¹Ã»Óа취Äܹ»ÔÚË«»ú·¿Ìõ¼þÏÂʵÏֱȽϺõÄÈÝÔÖЧ¹û¡ª¡ªÒòΪÎÞÂÛÄĸö»ú·¿·¢ÉúÒì³£Çé¿ö£¬¶¼ÓпÉÄÜʹµÃ
ZooKeeper ¼¯ÈºÖпÉÓõĻúÆ÷ÎÞ·¨³¬¹ý°ëÊý¡£µ±È»£¬ÔÚÓµÓÐÁ½¸ö»ú·¿µÄ³¡¾°Ï£¬Í¨³£ÓÐÒ»¸ö»ú·¿ÊÇÖ÷Òª»ú·¿£¨Ò»°ã¶øÑÔ£¬¹«Ë¾»á»¨·Ñ¸ü¶àµÄǮȥ×âÓÃÒ»¸öÎȶ¨ÐÔ¸üºÃ¡¢É豸¸ü¿É¿¿µÄ»ú·¿£¬Õâ¸ö»ú·¿¾ÍÊÇÖ÷Òª»ú·¿£¬¶øÁíÍâÒ»¸ö»ú·¿Ôò¸ü¼ÓÁ®¼ÛһЩ£©¡£ÎÒÃÇΨһÄÜ×öµÄ£¬¾ÍÊǾ¡Á¿ÔÚÖ÷Òª»ú·¿²¿Êð¸ü¶àµÄ»úÆ÷¡£ÀýÈ磬¶ÔÓÚÒ»¸öÓÉ
7 ̨»úÆ÷×é³ÉµÄ ZooKeeper ¼¯Èº£¬Í¨³£ÔÚÖ÷Òª»ú·¿Öв¿Êð 4 ̨»úÆ÷£¬Ê£Ï嵀 3 ̨»úÆ÷²¿Êðµ½ÁíÍâÒ»¸ö»ú·¿ÖС£
Èý»ú·¿²¿Êð
¼ÈÈ»ÔÚË«»ú·¿²¿Êðģʽϲ¢²»ÄÜʵÏֺõÄÈÝÔÖЧ¹û£¬ÄÇô¶ÔÓÚÓÐÌõ¼þµÄ¹«Ë¾£¬Ñ¡ÔñÈý»ú·¿²¿ÊðÎÞÒÉÊǸö¸üºÃµÄÑ¡Ôñ£¬ÎÞÂÛÄĸö»ú·¿·¢ÉúÁ˹ÊÕÏ£¬Ê£ÏÂÁ½¸ö»ú·¿µÄ»úÆ÷ÊýÁ¿¶¼³¬¹ý°ëÊý¡£¼ÙÈçÎÒÃÇÓÐÈý¸ö»ú·¿¿ÉÒÔ²¿Êð·þÎñ£¬²¢ÇÒÕâÈý¸ö»ú·¿¼äµÄÍøÂç×´¿öÁ¼ºÃ£¬ÄÇô¾Í¿ÉÒÔÔÚÈý¸ö»ú·¿Öж¼²¿ÊðÈô¸É¸ö»úÆ÷À´×é³ÉÒ»¸ö
ZooKeeper ¼¯Èº¡£
ÎÒÃǼٶ¨¹¹³É ZooKeeper ¼¯ÈºµÄ»úÆ÷×ÜÊýΪ N£¬ÔÚÈý¸ö»ú·¿Öв¿ÊðµÄ ZooKeeper
·þÎñÆ÷Êý·Ö±ðΪ N1¡¢N2 ºÍ N3£¬Èç¹ûҪʹ¸Ã ZooKeeper ¼¯Èº¾ßÓнϺõÄÈÝÔÖÄÜÁ¦£¬ÎÒÃÇ¿ÉÒÔ¸ù¾ÝÈçÏÂËã·¨À´¼ÆËã
ZooKeeper ¼¯ÈºµÄ»úÆ÷²¿Êð·½°¸¡£
1. ¼ÆËã N1
Èç¹û ZooKeeper ¼¯ÈºµÄ·þÎñÆ÷×ÜÊýÊÇ N£¬ÄÇô£º
N1 = (N-1)/2
ÔÚ Java ÖУ¬¡°/¡± ÔËËã·û»á×Ô¶¯¶Ô¼ÆËã½á¹ûÏòÏÂÈ¡Õû²Ù×÷¡£¾Ù¸öÀý×Ó£¬Èç¹û
N=8£¬ÄÇô N1=3£»Èç¹û N=7£¬ÄÇô N1 Ò²µÈÓÚ 3¡£
2. ¼ÆËã N2 µÄ¿Éѡֵ
N2 µÄ¼ÆËã¹æÔòºÍ N1 ·Ç³£ÀàËÆ£¬Ö»ÊÇ N2 µÄȡֵÊÇÔÚÒ»¸öȡֵ·¶Î§ÄÚ£º
N2 µÄȡֵ·¶Î§ÊÇ 1~(N-N1)/2
¼´Èç¹û N=8£¬ÄÇô N1=3£¬Ôò N2 µÄȡֵ·¶Î§¾ÍÊÇ 1~2£¬·Ö±ðÊÇ
1 ºÍ 2¡£×¢Ò⣬1 ºÍ 2 ½ö½öÊÇ N2 µÄ¿Éѡֵ£¬²¢·Ç×îÖÕÖµ¡ª¡ªÈç¹û N2 Ϊij¸ö¿ÉѡֵµÄʱºò£¬ÎÞ·¨¼ÆËã³ö
N3 µÄÖµ£¬ÄÇô¸Ã¿ÉѡֵҲÎÞЧ¡£
3. ¼ÆËã N3£¬Í¬Ê±È·¶¨ N2 µÄÖµ
ºÜÏÔÈ»£¬ÏÖÔÚֻʣÏ N3 ÁË£¬¿ÉÒÔ¼òµ¥µÄÈÏΪ N3 µÄȡֵ¾ÍÊÇʣϵĻúÆ÷Êý£¬¼´£º
N3 = N - N1 - N2
Ö»ÊÇ N3 µÄȡֵ±ØÐëÂú×ã N3 < N1+N2¡£ÔÚÂú×ãÕâ¸öÌõ¼þµÄ»ù´¡Ï£¬ÎÒÃDZéÀú²½Öè
2 ÖмÆËãµÃµ½µÄ N2 µÄ¿Éѡֵ£¬¼´¿ÉµÃµ½Èý»ú·¿²¿Êðʱÿ¸ö»ú·¿µÄ·þÎñÆ÷ÊýÁ¿ÁË¡£
ÏÖÔÚÎÒÃÇÒÔ 7 ̨»úÆ÷ΪÀý£¬À´¿´¿´ÈçºÎ·ÖÅäÈý»ú·¿µÄ»úÆ÷·Ö²¼¡£¸ù¾ÝËã·¨µÄ²½Öè 1£¬ÎÒÃÇÊ×ÏÈÈ·¶¨
N1 µÄȡֵΪ 3¡£¸ù¾ÝËã·¨µÄ²½Öè 2£¬ÎÒÃÇÈ·¶¨ÁË N2 µÄ¿ÉѡֵΪ 1 ºÍ 2¡£×îºó¸ù¾Ý²½Öè 3£¬ÎÒÃDZéÀú
N2 µÄ¿Éѡֵ£¬¼´¿ÉµÃµ½Á½ÖÖ²¿Êð·½°¸£¬·Ö±ðÊÇ (3,1,3) ºÍ (3,2,2)¡£ÒÔÏÂÊÇ Java
³ÌÐò´úÂë¶ÔÒÔÉÏËã·¨µÄÒ»ÖÖ¼òµ¥ÊµÏÖ£º
public class
Allocation {
static final int n = 7;
public static void main(String[] args){
int n1,n2,n3;
n1 = (n-1) / 2;
int n2_max = (n-n1) / 2;
for(int i=1; i<=n2_max; i++){
n2 = i;
n3 = n - n1 -n2;
if(n3 >= (n1+n2)){
continue;
}
System.out.println("("+n1+","+n2+","+n3+")");
}
}
} |
ˮƽÀ©ÈÝ
ˮƽ¿ÉÀ©ÈÝ¿ÉÒÔ˵ÊǶÔÒ»¸ö·Ö²¼Ê½ÏµÍ³Ôڸ߿ÉÓÃÐÔ·½ÃæÌá³öµÄ»ù±¾µÄ£¬Ò²ÊǷdz£ÖØÒªµÄÒ»¸öÒªÇó£¬Í¨¹ýˮƽÀ©ÈÝÄܹ»°ïÖúϵͳÔÚ²»½øÐлò½øÐм«ÉٸĽø¹¤×÷µÄǰÌáÏ£¬¿ìËÙÌá¸ßϵͳ¶ÔÍâµÄ·þÎñÖ§³ÅÄÜÁ¦¡£¼òµ¥µØ½²£¬Ë®Æ½À©ÈݾÍÊÇÏò¼¯ÈºÖÐÌí¼Ó¸ü¶àµÄ»úÆ÷£¬ÒÔÌá¸ßϵͳµÄ·þÎñÖÊÁ¿¡£
ºÜÒź¶µÄÊÇ£¬ZooKeeper ÔÚˮƽÀ©ÈÝÀ©ÈÝ·½Ãæ×öµÃ²¢²»Ê®·ÖÍêÃÀ£¬ÐèÒª½øÐÐÕû¸ö¼¯ÈºµÄÖØÆô¡£Í¨³£ÓÐÁ½ÖÖÖØÆô·½Ê½£¬Ò»ÖÖÊǼ¯ÈºÕûÌåÖØÆô£¬ÁíÍâÒ»ÖÖÊÇÖð̨½øÐзþÎñÆ÷µÄÖØÆô¡£
ÕûÌåÖØÆô
Ëùν¼¯ÈºÕûÌåÖØÆô£¬¾ÍÊÇÏȽ«Õû¸ö¼¯ÈºÍ£Ö¹£¬È»ºó¸üРZooKeeper µÄÅäÖã¬È»ºóÔÙ´ÎÆô¶¯¡£Èç¹ûÔÚÄãµÄϵͳÖУ¬ZooKeeper
²¢²»ÊǸö·Ç³£ºËÐĵÄ×é¼þ£¬²¢ÇÒÄܹ»ÔÊÐí¶ÌÔݵķþÎñÍ£Ö¹£¨Í¨³£ÊǼ¸ÃëÖÓµÄʱ¼ä¼ä¸ô£©£¬ÄÇô²»·ÁÑ¡ÔñÕâÖÖ·½Ê½¡£ÔÚÕûÌåÖØÆôµÄ¹ý³ÌÖУ¬ËùÓиü¯ÈºµÄ¿Í»§¶Ë¶¼ÎÞ·¨Á¬½ÓÉϼ¯Èº¡£µÈµ½¼¯ÈºÔÙ´ÎÆô¶¯£¬ÕâЩ¿Í»§¶Ë¾ÍÄܹ»×Ô¶¯Á¬½ÓÉÏ¡ª¡ª×¢Ò⣬ÕûÌåÆô¶¯Ç°½¨Á¢ÆðµÄ¿Í»§¶Ë»á»°£¬²¢²»»áÒòΪ´Ë´ÎÕûÌåÖØÆô¶øÊ§Ð§¡£Ò²¾ÍÊÇ˵£¬ÔÚÕûÌåÖØÆôÆÚ¼ä»¨·ÑµÄʱ¼ä½«²»¼ÆÈë»á»°³¬Ê±Ê±¼äµÄ¼ÆËãÖС£
ÖðÌ¨ÖØÆô
ÕâÖÖ·½Ê½¸üÊʺϾø´ó¶àÊýµÄʵ¼Ê³¡¾°¡£ÔÚÕâÖÖ·½Ê½ÖУ¬Ã¿´Î½ö½öÖØÆô¼¯ÈºÖеÄһ̨»úÆ÷£¬È»ºóÖð̨¶ÔÕû¸ö¼¯ÈºÖеĻúÆ÷½øÐÐÖØÆô²Ù×÷¡£ÕâÖÖ·½Ê½¿ÉÒÔÔÚÖØÆôÆÚ¼äÒÀÈ»±£Ö¤¼¯Èº¶ÔÍâµÄÕý³£·þÎñ¡£
|