package io.scalecube.examples; import io.scalecube.cluster.Cluster; import io.scalecube.transport.Message; /** * Basic example for member gossiping between cluster members. to run the example Start ClusterNodeA and cluster * ClusterNodeB A listen on gossip B spread gossip * * @author ronen hamias, Anton Kharenko * */ public class GossipExample { /** * Main method. */ public static void main(String[] args) throws Exception { // Start cluster nodes and subscribe on listening gossips Cluster alice = Cluster.joinAwait(); alice.listenGossips().subscribe(gossip -> System.out.println("Alice heard: " + gossip.data())); Cluster bob = Cluster.joinAwait(alice.address()); bob.listenGossips().subscribe(gossip -> System.out.println("Bob heard: " + gossip.data())); Cluster carol = Cluster.joinAwait(alice.address()); carol.listenGossips().subscribe(gossip -> System.out.println("Carol heard: " + gossip.data())); Cluster dan = Cluster.joinAwait(alice.address()); dan.listenGossips().subscribe(gossip -> System.out.println("Dan heard: " + gossip.data())); // Start cluster node Eve that joins cluster and spreads gossip Cluster eve = Cluster.joinAwait(alice.address()); eve.spreadGossip(Message.fromData("Gossip from Eve")); // Avoid exit main thread immediately ]:-> Thread.sleep(1000); } }