Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 

23 rader
794 B

  1. from xmlrpc.client import ServerProxy
  2. import socket
  3. import time
  4. PORT = 1234
  5. CLUSTER = [1, 2, 3]
  6. LOGS = ['SET 5', 'ADD 1']
  7. if __name__ == '__main__':
  8. time.sleep(10) # Wait for leader election processs
  9. print('Client started')
  10. for node_id in CLUSTER:
  11. try:
  12. with ServerProxy(f'http://node_{node_id}:{PORT}') as node:
  13. if node.is_leader():
  14. print(f"Node {node_id} is the cluster leader. Sending logs")
  15. for log in LOGS:
  16. if node.leader_receive_log(log):
  17. print(f"Leader committed '{log}'")
  18. time.sleep(5) # Wait for entries to propagate
  19. except socket.error as e:
  20. print(f"Failed to connect to node_{node_id}: {e}")