MyException - 我的异常网
当前位置:我的异常网» 开源软件 » 杞細zookeeper鐜鎼徐

杞細zookeeper鐜鎼徐

www.MyException.Cn  网友分享于:2013-11-16  浏览:0次
杞細zookeeper鐜鎼缓

銆€璇村埌鍒嗗竷寮忓紑鍙慫ookeeper鏄繀椤讳簡瑙e拰鎺屾彙鐨勶紝鍒嗗竷寮忔秷鎭湇鍔afka 銆乭base 鍒癶adoop绛夊垎甯冨紡澶ф暟鎹鐞嗛兘浼氱敤鍒癦ookeeper锛屾墍浠ュ湪姝ゅ皢Zookeeper浣滀负鍩虹鏉ヨ瑙c€?/p>

聽銆€銆€Zookeeper 鏄垎甯冨紡鏈嶅姟妗嗘灦锛屼富瑕佹槸鐢ㄦ潵瑙e喅鍒嗗竷寮忓簲鐢ㄤ腑缁忓父閬囧埌鐨勪竴浜涙暟鎹鐞嗛棶棰橈紝濡傦細缁熶竴鍛藉悕鏈嶅姟銆佺姸鎬佸悓姝ユ湇鍔°€侀泦缇ょ鐞嗐€佸垎甯冨紡搴旂敤閰嶇疆椤圭殑绠$悊绛夌瓑銆?/p>

銆€銆€Zookeeper 鐨勬牳蹇冩槸骞挎挱锛岃繖涓満鍒朵繚璇佷簡鍚勪釜Server涔嬮棿鐨勫悓姝ャ€傚疄鐜拌繖涓満鍒剁殑鍗忚鍙仛Zab鍗忚銆?br style="margin: 0px; padding: 0px;">銆€銆€Zab鍗忚鏈変袱绉嶆ā寮忥紝瀹冧滑鍒嗗埆鏄仮澶嶆ā寮忥紙閫変富锛夊拰骞挎挱 妯″紡锛堝悓姝ワ級銆傚綋鏈嶅姟鍚姩鎴栬€呭湪棰嗗鑰呭穿婧冨悗锛孼ab灏辫繘鍏ヤ簡鎭㈠妯″紡锛屽綋棰嗗鑰呰閫変妇鍑烘潵锛屼笖澶у鏁癝erver瀹屾垚浜嗗拰leader鐨勭姸鎬佸悓姝ヤ互鍚庯紝 鎭㈠妯″紡灏辩粨鏉熶簡銆?br style="margin: 0px; padding: 0px;">銆€銆€鐘舵€佸悓姝ヤ繚璇佷簡leader鍜孲erver鍏锋湁鐩稿悓鐨勭郴缁熺姸鎬併€備负浜嗕繚璇佷簨鍔$殑椤哄簭涓€鑷存€э紝zookeeper閲囩敤浜嗛€掑鐨勪簨鍔d鍙?锛坺xid锛夋潵鏍囪瘑浜嬪姟銆?br style="margin: 0px; padding: 0px;">銆€銆€鎵€鏈夌殑鎻愯锛坧roposal锛夐兘鍦ㄨ鎻愬嚭鐨勬椂鍊欏姞涓婁簡zxid銆傚疄鐜颁腑zxid鏄竴涓?4浣嶇殑鏁板瓧锛屽畠楂?2浣嶆槸epoch鐢?鏉ユ爣璇唋eader鍏崇郴鏄惁鏀瑰彉锛屾瘡娆′竴涓猯eader琚€夊嚭鏉ワ紝瀹冮兘浼氭湁涓€涓柊鐨別poch锛屾爣璇嗗綋鍓嶅睘浜庨偅涓猯eader鐨勭粺娌绘椂鏈熴€備綆32浣嶇敤浜庨€?澧炶鏁般€?br style="margin: 0px; padding: 0px;">銆€銆€姣忎釜Server鍦ㄥ伐浣滆繃绋嬩腑鏈変笁绉嶇姸鎬侊細
銆€銆€LOOKING锛氬綋鍓峉erver涓嶇煡閬搇eader鏄皝锛屾鍦ㄦ悳瀵汇€?br style="margin: 0px; padding: 0px;">銆€銆€LEADING锛氬綋鍓峉erver鍗充负閫変妇鍑烘潵鐨刲eader銆?br style="margin: 0px; padding: 0px;">銆€銆€FOLLOWING锛歭eader宸茬粡閫変妇鍑烘潵锛屽綋鍓峉erver涓庝箣鍚屾銆?/p>

銆€銆€ZooKeeper鐨勫畨瑁呮ā寮忓垎涓轰笁绉嶏紝鍒嗗埆涓猴細鍗曟満妯″紡銆侀泦缇ゆā寮忓拰闆嗙兢浼垎甯冩ā寮?/p>

鐜

銆€銆€CentOS7.0 聽(windows涓娇鐢ㄥ氨浣跨敤zkServer.cmd)

銆€銆€ZooKeeper鏈€鏂扮増鏈?/p>

銆€銆€鐢╮oot鐢ㄦ埛瀹夎锛堝鏋滅敤浜巋base鏃跺皢鎵€鏈夋枃浠舵潈闄愭敼涓篽adoop鐢ㄦ埛锛?/p>

聽 聽 聽Java鐜锛屾渶濂芥槸鏈€鏂扮増鏈殑銆?/p>

銆€銆€鍒嗗竷寮忔椂澶氭満闂磋纭繚鑳芥甯搁€氳锛屽叧闂槻鐏鎴栬娑夊強鍒扮殑绔彛閫氳繃銆?/span>

涓嬭浇

銆€銆€鍘诲畼缃戜笅杞?锛歨ttp://zookeeper.apache.org/releases.html#download

銆€銆€涓嬭浇鍚庢斁杩汣entOS涓殑/usr/local/ 鏂囦欢澶逛腑锛屽苟瑙e帇鍒板綋鍓嶆枃浠朵腑 /usr/local/zookeeper锛堟€庝箞瑙e帇鍙弬鑰冧箣鍓嶇殑Haproxy鐨勫畨瑁呮枃绔狅級

瀹夎

鍗曟満妯″紡

銆€銆€杩涘叆zookeeper鐩綍涓嬬殑conf瀛愮洰褰? 閲嶅懡鍚?zoo_sample.cfg鏂囦欢锛孼ookeeper 鍦ㄥ惎鍔ㄦ椂浼氭壘杩欎釜鏂囦欢浣滀负榛樿閰嶇疆鏂囦欢:

mv /usr/local/zookeeper/conf/zoo_sample.cfg 聽zoo.cfg

銆€銆€閰嶇疆zoo.cfg鍙傛暟

澶嶅埗浠g爜
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
# the port at which the clients will connect
clientPort=2181
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
#http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
澶嶅埗浠g爜

鍙傛暟璇存槑:

tickTime锛氭绉掑€?杩欎釜鏃堕棿鏄綔涓?Zookeeper 鏈嶅姟鍣ㄤ箣闂存垨瀹㈡埛绔笌鏈嶅姟鍣ㄤ箣闂寸淮鎸佸績璺崇殑鏃堕棿闂撮殧锛屼篃灏辨槸姣忎釜 tickTime 鏃堕棿灏变細鍙戦€佷竴涓績璺炽€?br style="margin: 0px; padding: 0px;">dataDir锛氶【鍚嶆€濅箟灏辨槸 Zookeeper 淇濆瓨鏁版嵁鐨勭洰褰曪紝榛樿鎯呭喌涓嬶紝Zookeeper 灏嗗啓鏁版嵁鐨勬棩蹇楁枃浠朵篃淇濆瓨鍦ㄨ繖涓洰褰曢噷銆?br style="margin: 0px; padding: 0px;">dataLogDir锛氶【鍚嶆€濅箟灏辨槸 Zookeeper 淇濆瓨鏃ュ織鏂囦欢鐨勭洰褰?br style="margin: 0px; padding: 0px;">clientPort锛氳繖涓鍙e氨鏄鎴风杩炴帴 Zookeeper 鏈嶅姟鍣ㄧ殑绔彛锛孼ookeeper 浼氱洃鍚繖涓鍙o紝鎺ュ彈瀹㈡埛绔殑璁块棶璇锋眰銆?/p>

銆€銆€鍐嶅垱寤轰笂闈㈤厤缃殑data鍜宭og鏂囦欢澶癸細

mkdir  /usr/local/zookeeper/data
mkdir  /usr/local/zookeeper/log

鍚姩zookeeper

銆€銆€鍏堣繘鍏?usr/local/zookeeper鏂囦欢澶?/p>

cd /usr/local/zookeeper

銆€銆€鍐嶈繍琛屄?/p>

bin/zkServer.sh start

銆€銆€妫€娴嬫槸鍚︽垚鍔熷惎鍔細鎵ц

bin/zkCli.sh 
鎴?
echo stat|nc localhost 2181

聽浼泦缇ゆā寮?/h3>

銆€銆€鎵€璋撲吉闆嗙兢, 鏄寚鍦ㄥ崟鍙版満鍣ㄤ腑鍚姩澶氫釜zookeeper杩涚▼, 骞剁粍鎴愪竴涓泦缇? 浠ュ惎鍔?涓獄ookeeper杩涚▼涓轰緥锛屾ā鎷?鍙版満銆?br style="margin: 0px; padding: 0px;">銆€銆€灏唞ookeeper鐨勭洰褰曞鎷疯礉2浠?
銆€銆€zookeeper/conf/zoo.cfg鏂囦欢涓庡崟鏈轰竴鏍凤紝鍙敼涓轰笅闈㈢殑鍐呭:

澶嶅埗浠g爜
tickTime=2000 
initLimit=5 
syncLimit=2 
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
clientPort=2180
server.0=127.0.0.1:2888:3888
server.1=127.0.0.1:2889:3889 
server.2=127.0.0.1:2890:3890
澶嶅埗浠g爜

銆€銆€鏂板浜嗗嚑涓弬鏁? 鍏跺惈涔夊涓?

1 initLimit: zookeeper闆嗙兢涓殑鍖呭惈澶氬彴server, 鍏朵腑涓€鍙颁负leader, 闆嗙兢涓叾浣欑殑server涓篺ollower. initLimit鍙傛暟閰嶇疆鍒濆鍖栬繛鎺ユ椂, follower鍜宭eader涔嬮棿鐨勬渶闀垮績璺虫椂闂? 姝ゆ椂璇ュ弬鏁拌缃负5, 璇存槑鏃堕棿闄愬埗涓?鍊峵ickTime, 鍗?*2000=10000ms=10s.
2 syncLimit: 璇ュ弬鏁伴厤缃甽eader鍜宖ollower涔嬮棿鍙戦€佹秷鎭? 璇锋眰鍜屽簲绛旂殑鏈€澶ф椂闂撮暱搴? 姝ゆ椂璇ュ弬鏁拌缃负2, 璇存槑鏃堕棿闄愬埗涓?鍊峵ickTime, 鍗?000ms.
3 server.X=A:B:C 鍏朵腑X鏄竴涓暟瀛? 琛ㄧず杩欐槸绗嚑鍙穝erver. A鏄server鎵€鍦ㄧ殑IP鍦板潃. B閰嶇疆璇erver鍜岄泦缇や腑鐨刲eader浜ゆ崲娑堟伅鎵€浣跨敤鐨勭鍙? C閰嶇疆閫変妇leader鏃舵墍浣跨敤鐨勭鍙? 鐢变簬閰嶇疆鐨勬槸浼泦缇ゆā寮? 鎵€浠ュ悇涓猻erver鐨凚, C鍙傛暟蹇呴』涓嶅悓.
鍙傜収zookeeper/conf/zoo.cfg, 閰嶇疆zookeeper1/conf/zoo.cfg, 鍜寊ookeeper2/conf/zoo.cfg鏂囦欢. 鍙渶鏇存敼dataDir, dataLogDir, clientPort鍙傛暟鍗冲彲.

鍦ㄤ箣鍓嶈缃殑dataDir涓柊寤簃yid鏂囦欢, 鍐欏叆涓€涓暟瀛? 璇ユ暟瀛楄〃绀鸿繖鏄鍑犲彿server. 璇ユ暟瀛楀繀椤诲拰zoo.cfg鏂囦欢涓殑server.X涓殑X涓€涓€瀵瑰簲.
/usr/local/zookeeper/data/myid鏂囦欢涓啓鍏?, /usr/local/zookeeper1/data/myid鏂囦欢涓啓鍏?, /Users/apple/zookeeper2/data/myid鏂囦欢涓啓鍏?.

銆€銆€鍒嗗埆杩涘叆/usr/local/zookeeper/bin, /usr/local/zookeeper1/bin, /usr/local/zookeeper2/bin涓変釜鐩綍, 鍚姩server銆傚惎鍔ㄦ柟娉曚笌鍗曟満涓€鑷淬€?/p>

bin/zkServer.sh start

銆€銆€鍒嗗埆妫€娴嬫槸鍚︽垚鍔熷惎鍔細鎵ц

bin/zkCli.sh 
鎴?
echo stat|nc localhost 2181

闆嗙兢妯″紡

銆€銆€闆嗙兢妯″紡鐨勯厤缃拰浼泦缇ゅ熀鏈竴鑷?
銆€銆€鐢变簬闆嗙兢妯″紡涓? 鍚剆erver閮ㄧ讲鍦ㄤ笉鍚岀殑鏈哄櫒涓? 鍥犳鍚剆erver鐨刢onf/zoo.cfg鏂囦欢鍙互瀹屽叏涓€鏍?
銆€銆€涓嬮潰鏄竴涓ず渚?

澶嶅埗浠g爜
tickTime=2000 
initLimit=5 
syncLimit=2 
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
clientPort=2180
server.0=192.168.80.30:2888:3888
server.1=192.168.80.31:2888:3888
server.2=192.168.80.32:2888:3888
澶嶅埗浠g爜

銆€銆€绀轰緥涓儴缃蹭簡3鍙皕ookeeper server, 鍒嗗埆閮ㄧ讲鍦?92.168.80.30, 192.168.80.31, 192.168.80.32涓?聽

銆€銆€闇€瑕佹敞鎰忕殑鏄? 鍚剆erver鐨刣ataDir鐩綍涓嬬殑myid鏂囦欢涓殑鏁板瓧蹇呴』涓嶅悓锛?92.168.80.30 server鐨刴yid涓?, 192.168.80.31 server鐨刴yid涓?, 192.168.80.32 server鐨刴yid涓?

銆€銆€鍒嗗埆杩涘叆/usr/local/zookeeper/bin鐩綍, 鍚姩server銆傚惎鍔ㄦ柟娉曚笌鍗曟満涓€鑷淬€?/p>

bin/zkServer.sh start

銆€銆€鍒嗗埆妫€娴嬫槸鍚︽垚鍔熷惎鍔細鎵ц

bin/zkCli.sh 
鎴?
echo stat|nc localhost 2181

聽銆€銆€杩欐椂浼氭姤澶ч噺閿欒锛熷叾瀹炴病浠€涔堝叧绯伙紝鍥犱负鐜板湪闆嗙兢鍙捣浜?鍙皊erver锛寊ookeeper鏈嶅姟鍣ㄧ璧锋潵浼氭牴鎹畓oo.cfg鐨勬湇鍔″櫒鍒楄〃鍙戣捣閫変妇leader鐨勮姹傦紝鍥犱负杩炰笉涓婂叾浠栨満鍣ㄨ€屾姤閿欙紝閭d箞褰撴垜浠捣绗簩涓獄ookeeper瀹炰緥鍚庯紝leader灏嗕細琚€夊嚭锛屼粠鑰屼竴鑷存€ф湇鍔″紑濮嬪彲浠ヤ娇鐢紝杩欐槸鍥犱负3鍙版満鍣ㄥ彧瑕佹湁2鍙板彲鐢ㄥ氨鍙互閫夊嚭leader骞朵笖瀵瑰鎻愪緵鏈嶅姟(2n+1鍙版満鍣紝鍙互瀹筺鍙版満鍣ㄦ寕鎺?銆?/p>

ZooKeeper鏈嶅姟鍛戒护

1. 鍚姩ZK鏈嶅姟: zkServer.sh start
2. 鏌ョ湅ZK鏈嶅姟鐘舵€? zkServer.sh status
3. 鍋滄ZK鏈嶅姟: zkServer.sh stop
4. 閲嶅惎ZK鏈嶅姟: zkServer.sh restart

zk瀹㈡埛绔懡浠わ細

銆€銆€ZooKeeper 鍛戒护琛屽伐鍏风被浼间簬Linux鐨剆hell鐜锛屼娇鐢ㄥ畠鍙互瀵筞ooKeeper杩涜璁块棶锛屾暟鎹垱寤猴紝鏁版嵁淇敼绛夋搷浣?

銆€銆€浣跨敤 zkCli.sh -server 192.168.80.31:2181 杩炴帴鍒?ZooKeeper 鏈嶅姟锛岃繛鎺ユ垚鍔熷悗锛岀郴缁熶細杈撳嚭 ZooKeeper 鐨勭浉鍏崇幆澧冧互鍙婇厤缃俊鎭€傚懡浠よ宸ュ叿鐨勪竴浜涚畝鍗曟搷浣滃涓嬶細

澶嶅埗浠g爜
1. 鏄剧ず鏍圭洰褰曚笅銆佹枃浠讹細 ls / 浣跨敤 ls 鍛戒护鏉ユ煡鐪嬪綋鍓?ZooKeeper 涓墍鍖呭惈鐨勫唴瀹?
2. 鏄剧ず鏍圭洰褰曚笅銆佹枃浠讹細 ls2 / 鏌ョ湅褰撳墠鑺傜偣鏁版嵁骞惰兘鐪嬪埌鏇存柊娆℃暟绛夋暟鎹?
3. 鍒涘缓鏂囦欢锛屽苟璁剧疆鍒濆鍐呭锛?create /zk "test" 鍒涘缓涓€涓柊鐨?znode鑺傜偣鈥?zk 鈥濅互鍙婁笌瀹冨叧鑱旂殑瀛楃涓?
4. 鑾峰彇鏂囦欢鍐呭锛?get /zk 纭 znode 鏄惁鍖呭惈鎴戜滑鎵€鍒涘缓鐨勫瓧绗︿覆
5. 淇敼鏂囦欢鍐呭锛?set /zk "zkbak" 瀵?zk 鎵€鍏宠仈鐨勫瓧绗︿覆杩涜璁剧疆
6. 鍒犻櫎鏂囦欢锛?delete /zk 灏嗗垰鎵嶅垱寤虹殑 znode 鍒犻櫎
7. 閫€鍑哄鎴风锛?quit
8. 甯姪鍛戒护锛?help
澶嶅埗浠g爜

聽鎵╁睍

銆€銆€閫氳繃涓婅堪鍛戒护瀹炶返锛屾垜浠彲浠ュ彂鐜帮紝zookeeper浣跨敤浜嗕竴涓被浼兼枃浠剁郴缁熺殑鏍戠粨鏋勶紝鏁版嵁鍙互鎸傚湪鏌愪釜鑺傜偣涓婏紝鍙互瀵硅繖涓妭鐐硅繘琛屽垹鏀广€傚彟澶栨垜浠繕鍙戠幇锛屽綋鏀瑰姩涓€涓妭鐐圭殑鏃跺€欙紝闆嗙兢涓椿鐫€鐨勬満鍣ㄩ兘浼氭洿鏂板埌涓€鑷寸殑鏁版嵁銆偮?/p>

zookeeper鐨勬暟鎹ā鍨?/h2>

銆€銆€鍦ㄧ畝鍗曚娇鐢ㄤ簡zookeeper涔嬪悗锛屾垜浠彂鐜板叾鏁版嵁妯″瀷鏈変簺鍍忔搷浣滅郴缁熺殑鏂囦欢缁撴瀯锛岀粨鏋勫涓嬪浘鎵€绀?br style="margin: 0px; padding: 0px;"><iframe id="iframe_0.4486236831020234" style="margin: 0px; padding: 0px; border-width: initial; border-style: none; width: 340px; height: 316px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://www.aboutyun.com/data/attachment/forum/201408/26/221909ijck0pk60je6z0j0.jpg?_=6564839%22%20style=%22border:none;max-width:973px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.4486236831020234',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no"></iframe>
(1)聽 聽聽聽姣忎釜鑺傜偣鍦▃ookeeper涓彨鍋歾node,骞朵笖鍏舵湁涓€涓敮涓€鐨勮矾寰勬爣璇嗭紝濡?SERVER2鑺傜偣鐨勬爣璇嗗氨涓?APP3/SERVER2
(2)聽 聽聽聽Znode鍙互鏈夊瓙znode锛屽苟涓攝node閲屽彲浠ュ瓨鏁版嵁锛屼絾鏄疎PHEMERAL绫诲瀷鐨勮妭鐐逛笉鑳芥湁瀛愯妭鐐?br style="margin: 0px; padding: 0px;">(3)聽 聽聽聽Znode涓殑鏁版嵁鍙互鏈夊涓増鏈紝姣斿鏌愪竴涓矾寰勪笅瀛樻湁澶氫釜鏁版嵁鐗堟湰锛岄偅涔堟煡璇㈣繖涓矾寰勪笅鐨勬暟鎹氨闇€瑕佸甫涓婄増鏈€?br style="margin: 0px; padding: 0px;">(4)聽 聽聽聽znode 鍙互鏄复鏃惰妭鐐癸紝涓€鏃﹀垱寤鸿繖涓?znode 鐨勫鎴风涓庢湇鍔″櫒澶卞幓鑱旂郴锛岃繖涓?znode 涔熷皢鑷姩鍒犻櫎锛孼ookeeper 鐨勫鎴风鍜屾湇鍔″櫒閫氫俊閲囩敤闀胯繛鎺ユ柟寮忥紝姣忎釜瀹㈡埛绔拰聽聽鏈嶅姟鍣ㄩ€氳繃蹇冭烦鏉ヤ繚鎸佽繛鎺ワ紝杩欎釜杩炴帴鐘舵€佺О涓?session锛屽鏋?znode 鏄复鏃惰妭鐐癸紝杩欎釜 session 澶辨晥锛寊node 涔熷氨鍒犻櫎浜?br style="margin: 0px; padding: 0px;">(5)聽 聽聽聽znode 鐨勭洰褰曞悕鍙互鑷姩缂栧彿锛屽 App1 宸茬粡瀛樺湪锛屽啀鍒涘缓鐨勮瘽锛屽皢浼氳嚜鍔ㄥ懡鍚嶄负 App2聽
(6)聽 聽聽聽znode 鍙互琚洃鎺э紝鍖呮嫭杩欎釜鐩綍鑺傜偣涓瓨鍌ㄧ殑鏁版嵁鐨勪慨鏀癸紝瀛愯妭鐐圭洰褰曠殑鍙樺寲绛夛紝涓€鏃﹀彉鍖栧彲浠ラ€氱煡璁剧疆鐩戞帶鐨勫鎴风锛岃繖涓姛鑳芥槸zookeeper瀵逛簬搴旂敤鏈€閲嶈鐨勭壒鎬э紝閫氳繃杩欎釜鐗规€у彲浠ュ疄鐜扮殑鍔熻兘鍖呮嫭閰嶇疆鐨勯泦涓鐞嗭紝闆嗙兢绠$悊锛屽垎甯冨紡閿佺瓑绛夈€?聽

聽閫変妇娴佺▼

銆€銆€褰?leader宕╂簝鎴栬€卨eader澶卞幓澶у鏁扮殑follower锛岃繖鏃跺€檢k杩涘叆鎭㈠妯″紡锛屾仮澶嶆ā寮忛渶瑕侀噸鏂伴€変妇鍑轰竴涓柊鐨刲eader锛岃鎵€鏈夌殑 Server閮芥仮澶嶅埌涓€涓纭殑鐘舵€併€俍k鐨勯€変妇绠楁硶鏈変袱绉嶏細涓€绉嶆槸鍩轰簬basic paxos瀹炵幇鐨勶紝鍙﹀涓€绉嶆槸鍩轰簬fast paxos绠楁硶瀹炵幇鐨勩€傜郴缁熼粯璁ょ殑閫変妇绠楁硶涓篺ast paxos銆?br style="margin: 0px; padding: 0px;">basic paxos娴佺▼锛?br style="margin: 0px; padding: 0px;">1 .閫変妇绾跨▼鐢卞綋鍓峉erver鍙戣捣閫変妇鐨勭嚎绋嬫媴浠伙紝鍏朵富瑕佸姛鑳芥槸瀵规姇绁ㄧ粨鏋滆繘琛岀粺璁★紝骞堕€夊嚭鎺ㄨ崘鐨凷erver锛?br style="margin: 0px; padding: 0px;">2 .閫変妇绾跨▼棣栧厛鍚戞墍鏈塖erver鍙戣捣涓€娆¤闂?鍖呮嫭鑷繁)锛?br style="margin: 0px; padding: 0px;">3 .閫変妇绾跨▼鏀跺埌鍥炲鍚庯紝楠岃瘉鏄惁鏄嚜宸卞彂璧风殑璇㈤棶(楠岃瘉zxid鏄惁涓€鑷?锛岀劧鍚庤幏鍙栧鏂圭殑id(myid)锛屽苟瀛樺偍鍒板綋鍓嶈闂璞″垪琛ㄤ腑锛屾渶鍚庤幏鍙栧鏂规彁璁殑leader鐩稿叧淇℃伅(id,zxid)锛屽苟灏嗚繖浜涗俊鎭瓨鍌ㄥ埌褰撴閫変妇鐨勬姇绁ㄨ褰曡〃涓紱
4. 鏀跺埌鎵€鏈塖erver鍥炲浠ュ悗锛屽氨璁$畻鍑簔xid鏈€澶х殑閭d釜Server锛屽苟灏嗚繖涓猄erver鐩稿叧淇℃伅璁剧疆鎴愪笅涓€娆¤鎶曠エ鐨凷erver锛?br style="margin: 0px; padding: 0px;">5. 绾跨▼灏嗗綋鍓峼xid鏈€澶х殑Server璁剧疆涓哄綋鍓峉erver瑕佹帹鑽愮殑Leader锛屽鏋滄鏃惰幏鑳滅殑Server鑾峰緱n/2 + 1鐨凷erver绁ㄦ暟锛?璁剧疆褰撳墠鎺ㄨ崘鐨刲eader涓鸿幏鑳滅殑Server锛屽皢鏍规嵁鑾疯儨鐨凷erver鐩稿叧淇℃伅璁剧疆鑷繁鐨勭姸鎬侊紝鍚﹀垯锛岀户缁繖涓繃绋嬶紝鐩村埌leader琚€変妇鍑烘潵銆?br style="margin: 0px; padding: 0px;">閫?杩囨祦绋嬪垎鏋愭垜浠彲浠ュ緱鍑猴細瑕佷娇Leader鑾峰緱澶氭暟Server鐨勬敮鎸侊紝鍒橲erver鎬绘暟蹇呴』鏄鏁?n+1锛屼笖瀛樻椿鐨凷erver鐨勬暟鐩笉寰楀皯浜?n+1.姣忎釜Server鍚姩鍚庨兘浼氶噸澶嶄互涓婃祦绋嬨€傚湪鎭㈠妯″紡涓嬶紝濡傛灉鏄垰浠庡穿婧冪姸鎬佹仮澶嶇殑鎴栬€呭垰鍚姩鐨剆erver杩樹細浠庣鐩樺揩鐓т腑鎭㈠鏁版嵁鍜屼細璇濅俊 鎭紝zk浼氳褰曚簨鍔℃棩蹇楀苟瀹氭湡杩涜蹇収锛屾柟渚垮湪鎭㈠鏃惰繘琛岀姸鎬佹仮澶嶃€偮?/p>

搴旂敤鍦烘櫙

聽銆€銆€鏄寚閫氳繃鎸囧畾鐨勫悕瀛楁潵鑾峰彇璧勬簮鎴栬€呮湇鍔$殑鍦板潃锛屾彁渚涜€呯殑淇℃伅銆傚埄鐢╖ookeeper寰堝鏄撳垱寤轰竴涓叏灞€鐨勮矾寰勶紝鑰岃繖涓矾寰勫氨鍙互浣滀负涓€涓悕瀛楋紝瀹冨彲浠ユ寚鍚戦泦缇や腑鐨勯泦缇わ紝鎻愪緵鐨勬湇鍔$殑鍦板潃锛岃繙绋嬪璞$瓑銆傜畝鍗曟潵璇翠娇鐢╖ookeeper鍋氬懡鍚嶆湇鍔″氨鏄敤璺緞浣滀负鍚嶅瓧锛岃矾寰勪笂鐨勬暟鎹氨鏄叾鍚嶅瓧鎸囧悜鐨勫疄浣撱€?/p>

銆€銆€闃块噷宸村反闆嗗洟寮€婧愮殑鍒嗗竷寮忔湇鍔℃鏋禗ubbo涓娇鐢╖ooKeeper鏉ヤ綔涓哄叾鍛藉悕鏈嶅姟锛岀淮鎶ゅ叏灞€鐨勬湇鍔″湴鍧€鍒楄〃銆傚湪Dubbo瀹炵幇涓細
鏈嶅姟鎻愪緵鑰呭湪鍚姩鐨勬椂鍊欙紝鍚慫K涓婄殑鎸囧畾鑺傜偣/dubbo/${serviceName}/providers鐩綍涓嬪啓鍏ヨ嚜宸辩殑URL鍦板潃锛岃繖涓搷浣滃氨瀹屾垚浜嗘湇鍔$殑鍙戝竷銆?/div>
鏈嶅姟娑堣垂鑰呭惎鍔ㄧ殑鏃跺€欙紝璁㈤槄/dubbo/{serviceName}/providers鐩綍涓嬬殑鎻愪緵鑰匲RL鍦板潃锛?骞跺悜/dubbo/{serviceName} /consumers鐩綍涓嬪啓鍏ヨ嚜宸辩殑URL鍦板潃銆?/div>
銆€銆€娉ㄦ剰锛屾墍鏈夊悜ZK涓婃敞鍐岀殑鍦板潃閮芥槸涓存椂鑺傜偣锛岃繖鏍峰氨鑳藉淇濊瘉鏈嶅姟鎻愪緵鑰呭拰娑堣垂鑰呰兘澶熻嚜鍔ㄦ劅搴旇祫婧愮殑鍙樺寲銆?/div>
銆€銆€鍙﹀锛孌ubbo杩樻湁閽堝鏈嶅姟绮掑害鐨勭洃鎺э紝鏂规硶鏄闃?dubbo/{serviceName}鐩綍涓嬫墍鏈夋彁渚涜€呭拰娑堣垂鑰呯殑淇℃伅銆?/div>

浣滆€咃細娆㈤唹聽
鍏紬鍙枫€愪竴涓爜鍐滅殑鏃ュ父銆?鎶€鏈兢锛?19931204 1鍙风兢锛?437802986 2鍙风兢锛?340250479聽
鍑哄锛?a href="http://zhangs1986.cnblogs.com/" target="_blank" style="margin: 0px; padding: 0px; color: black;">http://zhangs1986.cnblogs.com/聽
鏈枃鐗堟潈褰掍綔鑰呭拰鍗氬鍥叡鏈夛紝娆㈣繋杞浇锛屼絾鏈粡浣滆€呭悓鎰忓繀椤讳繚鐣欐娈靛0鏄庯紝涓斿湪鏂囩珷椤甸潰鏄庢樉浣嶇疆缁欏嚭鍘熸枃杩炴帴锛屽惁鍒欎繚鐣欒拷绌舵硶寰嬭矗浠荤殑鏉冨埄銆?/div>

文章评论

60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
 程序员的样子
程序员的样子
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
编程语言是女人
编程语言是女人
代码女神横空出世
代码女神横空出世
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
一个程序员的时间管理
一个程序员的时间管理
中美印日四国程序员比较
中美印日四国程序员比较
Java程序员必看电影
Java程序员必看电影
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
程序员的鄙视链
程序员的鄙视链
旅行,写作,编程
旅行,写作,编程
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
总结2014中国互联网十大段子
总结2014中国互联网十大段子
为什么程序员都是夜猫子
为什么程序员都是夜猫子
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
10个调试和排错的小建议
10个调试和排错的小建议
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
程序员都该阅读的书
程序员都该阅读的书
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
程序员和编码员之间的区别
程序员和编码员之间的区别
程序员必看的十大电影
程序员必看的十大电影
那些争议最大的编程观点
那些争议最大的编程观点
程序员应该关注的一些事儿
程序员应该关注的一些事儿
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
我的丈夫是个程序员
我的丈夫是个程序员
我是如何打败拖延症的
我是如何打败拖延症的
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
鲜为人知的编程真相
鲜为人知的编程真相
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有