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