Cluster
seeds, members, process, running, onUpBlock, onDownBlock, reconnectInterval, failedSeeds, sentinelName, ring
Automated cluster membership management. Connects to seed nodes, monitors them for failure, and delivers membership events when nodes join or leave.
Built on existing primitives: Node connect:, process monitors, and
the NodeHealthMonitor heartbeat system.
"Create a cluster from seed addresses"
| cluster <Cluster> |
cluster := Cluster seeds: #('host1:8081' 'host2:8081').
cluster start.
cluster members. "Array of live Node values"
cluster size. "Number of live members"
"Register event handlers"
cluster onMemberUp: [:node | ('joined: ', node addr) println].
cluster onMemberDown: [:addr | ('left: ', addr) println].
cluster stop
Class Methods
uncategorized
Create a cluster from an array of seed addresses (e.g., 'host:port').
Instance Methods
uncategorized
Return true if the given address is a live member.
Return an Array of currently live Node values.
Return the node responsible for the given key using consistent hashing. Returns a Node, or nil if the cluster is empty.
| cluster <Cluster> node <Node> |
cluster := Cluster seeds: #('host1:8081' 'host2:8081').
node := cluster nodeFor: 'user-123'.
Return N nodes responsible for the given key (for replication). Returns an Array of Nodes.
Register a block to call when a member leaves. Block receives the address string.
Register a block to call when a new member joins. Block receives the Node.
Return the reconnect interval in milliseconds.
Set the reconnect interval in milliseconds.
Return the underlying HashRing.
Return the number of live members.
Start the cluster membership manager.
Stop the cluster and disconnect from all peers.