¸üÐÂʱ¼ä:2023Äê07ÔÂ24ÈÕ10ʱ33·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:

¡¡¡¡ZooKeeperÊÇÒ»¸ö·Ö²¼Ê½µÄе÷·þÎñ£¬ËüÌṩÁ˸߿ÉÓÃÐÔºÍ˳ÐòÒ»ÖÂÐÔµÄÊý¾Ý´æ´¢£¬Í¨³£ÓÃÓÚ½â¾ö·Ö²¼Ê½ÏµÍ³ÖеÄе÷ÎÊÌâ¡£ZooKeeperͨ¹ýʹÓÃZooKeeper¿Í»§¶Ë¿âÓëZooKeeper·þÎñÆ÷¼¯Èº½øÐн»»¥À´ÊµÏÖÕâÐ©ÌØÐÔ¡£
¡¡¡¡ZooKeeper±£Ö¤ÊÂÎñµÄ˳ÐòÒ»ÖÂÐÔÊÇͨ¹ýÔ×Ó¸üвÙ×÷µÄ·½Ê½À´ÊµÏֵġ£ZooKeeperÌṩÁËÒ»×éÔ×Ó²Ù×÷£¬¿ÉÒÔÈÿͻ§¶Ë¸üзþÎñÆ÷ÉϵÄÊý¾Ý½Úµã¡£ÕâЩÔ×Ó²Ù×÷±»³ÆÎª ZooKeeperÊÂÎñ£¬ÊÂÎñÔÚ·þÎñÆ÷¶Ë±»Öð¸ö´¦Àí£¬²¢°´ÕÕËüÃÇÔÚ¿Í»§¶Ë·¢Ë͵Ä˳ÐòÀ´Ö´ÐС£ÕâÈ·±£ÁËËùÓпͻ§¶Ë¿´µ½µÄÊý¾Ý¸üÐÂ˳ÐòÊÇÒ»Öµġ£
¡¡¡¡ÔÚZooKeeperÖУ¬Ë³ÐòÒ»ÖÂÐÔµÄʵÏÖÖ÷ÒªÒÀÀµÓÚÒÔÏÂÁ½¸ö·½Ã棺
¡¡¡¡1.˳ÐòÖ´ÐÐÊÂÎñ£ºµ±¶à¸ö¿Í»§¶Ë·¢ËÍÊÂÎñµ½ZooKeeper·þÎñÆ÷ʱ£¬·þÎñÆ÷»áÖð¸öÖ´ÐÐÕâЩÊÂÎñ£¬²¢°´ÕÕ¿Í»§¶ËÇëÇóµÄ˳ÐòÀ´½øÐд¦Àí¡£ÕâÑù£¬ÎÞÂÛÊǶÁ²Ù×÷»¹ÊÇд²Ù×÷£¬¿Í»§¶Ë¶¼Äܹ»ÔÚͬһ¸öʱ¼äµã¿´µ½ÏàͬµÄÊý¾Ý״̬¡£
¡¡¡¡2.»á»°»úÖÆ£ºZooKeeperµÄ¿Í»§¶ËÓë·þÎñÆ÷Ö®¼äͨ¹ý»á»°½øÐÐͨÐÅ¡£¿Í»§¶Ë»á»°ÔÚÁ¬½ÓÆÚ¼ä±£³Ö»î¶¯×´Ì¬£¬Ò»µ©¿Í»§¶ËÓë·þÎñÆ÷µÄÁ¬½Ó¶Ï¿ª£¬»á»°½«»á¹ýÆÚ¡£ÔÚÒ»¸ö»á»°ÄÚ£¬¿Í»§¶ËÓë·þÎñÆ÷±£³ÖÁËÒ»¸öÈ«¾ÖµÄ˳Ðò¡£ÕâÒâζ×ſͻ§¶ËÔÚÒ»¸ö»á»°ÄÚ·¢³öµÄÇëÇó»á±£³ÖÒ»ÖµÄÈ«¾Ö˳Ðò£¬¼´Ê¹Á¬½Óµ½Á˲»Í¬µÄ·þÎñÆ÷¡£
¡¡¡¡ÏÖÔÚÈÃÎÒÃÇÀ´ÑÝʾһ¸ö¼òµ¥µÄPython´úÂ룬ʹÓÃKazoo¿âÀ´Á¬½Óµ½ZooKeeper·þÎñÆ÷²¢Õ¹Ê¾Ë³ÐòÒ»ÖÂÐÔµÄЧ¹û£º
¡¡¡¡Ê×ÏÈ£¬È·±£ÎÒÃÇÒѾ°²×°ÁËKazoo¿â£¬¿ÉÒÔʹÓÃÒÔÏÂÃüÁîÀ´°²×°Ëü£º
pip install kazoo
¡¡¡¡½ÓÏÂÀ´£¬ÎÒÃÇ¿´¾ßÌåµÄʾÀý´úÂ룺
from kazoo.client import KazooClient
import time
import threading
def create_znode(zk, path):
zk.create(path, b"", sequence=True)
def watch_znode(zk, path):
@zk.DataWatch(path)
def watch_node(data, stat, event):
print(f"Node {path} data changed: {data.decode('utf-8')}")
def run_client(client_id):
zk = KazooClient(hosts='localhost:2181')
zk.start()
node_path = "/example_node"
create_znode(zk, node_path)
watch_znode(zk, node_path)
for i in range(5):
zk.set(node_path, f"Client {client_id} - Update {i}".encode())
time.sleep(2)
zk.stop()
if __name__ == "__main__":
num_clients = 3
threads = []
for i in range(num_clients):
thread = threading.Thread(target=run_client, args=(i,))
threads.append(thread)
thread.start()
for thread in threads:
thread.join()
¡¡¡¡´Ë´úÂë´´½¨ÁËÈý¸ö¿Í»§¶ËÁ¬½Óµ½±¾µØÔËÐеÄZooKeeper·þÎñÆ÷£¬Ã¿¸ö¿Í»§¶Ë¶¼´´½¨ÁËÒ»¸ö˳Ðò½Úµã²¢¿ªÊ¼¼àÊӸýڵãµÄÊý¾Ý±ä»¯¡£È»ºó£¬Ã¿¸ö¿Í»§¶Ë¶¼»á¸üиýڵãµÄÊý¾Ý²¢µÈ´ýÒ»¶Îʱ¼ä£¬Ä£Äⲻͬ¿Í»§¶ËµÄ²Ù×÷¡£ÎÒÃÇ»á¹Û²ìµ½ËùÓпͻ§¶Ë°´ÕÕËüÃǵĸüÐÂ˳ÐòÖ´ÐУ¬²¢ÇÒ½ÚµãµÄÊý¾Ý¸üÐÂ֪ͨ»á°´ÕÕ˳Ðò±»´¥·¢¡£
¡¡¡¡ÐèҪעÒâµÄÊÇ£¬ÒÔÉÏÖ»ÊÇÒ»¸ö¼òµ¥µÄÑÝʾ£¬Êµ¼ÊÓ¦ÓÃÖлáÓиü¶àµÄ¸´ÔÓÐÔºÍÈÝ´í»úÖÆÀ´±£Ö¤¸ß¿ÉÓÃÐÔºÍÊý¾ÝÒ»ÖÂÐÔ¡£
±±¾©Ð£Çø