時(shí)間:2023-06-26 10:18:01 | 來源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-06-26 10:18:01 來源:網(wǎng)站運(yùn)營(yíng)
虛擬IP管理系統(tǒng):[zk: localhost:2181(CONNECTED) 0] create /groups ""Created /groups[zk: localhost:2181(CONNECTED) 1] create /nodes ""Created /nodes[zk: localhost:2181(CONNECTED) 3] create /servers ""Created /servers[zk: localhost:2181(CONNECTED) 4] create /tasks ""Created /tasks[zk: localhost:2181(CONNECTED) 5] ls /[groups, servers, nodes, zookeeper, tasks]
當(dāng)一個(gè)agent服務(wù)起來時(shí),會(huì)在/nodes下注冊(cè)一個(gè)znode并且watch創(chuàng)建的znode。也會(huì)在/tasks下執(zhí)行同樣的操作。# For node1[zk: localhost:2181(CONNECTED) 7] create /nodes/node-192-168-1-4 ""Created /nodes/node-192-168-1-3[zk: localhost:2181(CONNECTED) 9] ls /nodes/node-192-168-1-4 true[]# For node1[zk: localhost:2181(CONNECTED) 7] create /tasks/node-192-168-1-4 ""Created /nodes/node-192-168-1-4[zk: localhost:2181(CONNECTED) 9] ls /tasks/node-192-168-1-4 true[]
# For server[zk: localhost:2181(CONNECTED) 10] create /groups/group1 ""Created /groups/group1[zk: localhost:2181(CONNECTED) 11] create /groups/group1/vips ""Created /groups/group1[zk: localhost:2181(CONNECTED) 12] create /groups/group1/nodes ""Created /groups/group1/nodes[zk: localhost:2181(CONNECTED) 13] create /groups/group1/vips/vip-192-168-1-2 some-configCreated /groups/group1/vips/vip-192-168-1-2[zk: localhost:2181(CONNECTED) 14] create /groups/group1/vips/vip-192-168-1-3 some-configCreated /groups/group1/vips/vip-192-168-1-3[zk: localhost:2181(CONNECTED) 15] create /nodes/node-192-168-1-4/group1 some-configCreated /nodes/node-192-168-1-4/group1[zk: localhost:2181(CONNECTED) 16] create /nodes/node-192-168-1-5/group1 some-configCreated /nodes/node-192-168-1-5/group1[zk: localhost:2181(CONNECTED) 17] create /nodes/node-192-168-1-6/group1 some-configCreated /nodes/node-192-168-1-6/group1
node1因?yàn)橹氨O(jiān)聽了/nodes/node-192-168-1-4這個(gè)節(jié)點(diǎn),所以會(huì)接受到zookeeper的通知,node1去讀取/nodes/node-192-168-1-4下面的znode,更新自己的配置。然后在/groups/group1/nodes下去創(chuàng)建一個(gè)臨時(shí)znode。# For node1WATCHER:: WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/nodes/node-192-168-1-4[zk: localhost:2181(CONNECTED) 18] create -e -s /groups/group1/nodes/node-192-168-1-4 ""Created /groups/group1/nodes/node-192-168-1-4[zk: localhost:2181(CONNECTED) 19] ls /groups/group1/vips[vip-192-168-1-2, vip-192-168-1-3][zk: localhost:2181(CONNECTED) 20] ls /groups/group1/vips/vip-192-168-1-2 true[][zk: localhost:2181(CONNECTED) 21] ls /groups/group1/vips/vip-192-168-1-3 true[]
當(dāng)server為/groups/group1/vips下面的節(jié)點(diǎn)增加子節(jié)點(diǎn)時(shí),agent會(huì)得到zookeeper的通知,通過獲取節(jié)點(diǎn)的內(nèi)容,可以知道自己是不是被server選中,從而選擇是否去執(zhí)行VIP的職責(zé)。# For server[zk: localhost:2181(CONNECTED) 5] create -s /tasks/node-192-168-1-4/task- "job definition"Created /tasks/node-192-168-1-4/task-0000000000[zk: localhost:2181(CONNECTED) 6] ls /tasks/node-192-168-1-4/task-0000000000 true[]
node1之前已經(jīng)監(jiān)聽過了/tasks/node-192-168-1-4,所以會(huì)得到zookeeper的通知,這時(shí)node1會(huì)去讀取/tasks/node-192-168-1-4下面的節(jié)點(diǎn),拿到要執(zhí)行的任務(wù),在執(zhí)行完成后,在/tasks//tasks/node-192-168-1-4/task-0000000000中添加一個(gè)狀態(tài)znode# For agent[zk: localhost:2181(CONNECTED) 5] create /tasks/node-192-168-1-4/task-0000000000/status "done"Created /tasks/node-192-168-1-4/task-0000000000/status
server因?yàn)楸O(jiān)聽了/tasks/node-192-168-1-4/task-0000000000節(jié)點(diǎn),所以會(huì)接到zookeeper的通知,知道任務(wù)已經(jīng)完成。# For server example.shopee.com[zk: localhost:2181(CONNECTED) 11] create /servers/server-shopee-com:1212 ""Created /servers/server-shopee-com:1212
server每次執(zhí)行關(guān)鍵詞:系統(tǒng),管理,虛擬
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。