Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@brusic
Last active August 29, 2015 14:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brusic/2dcced28e0ed753b6632 to your computer and use it in GitHub Desktop.
Save brusic/2dcced28e0ed753b6632 to your computer and use it in GitHub Desktop.
Node Event Detection
settings = settingsBuilder()
.put("cluster.name", "testing")
.putArray("discovery.zen.ping.unicast.hosts", "node1", "node2")
//.put("node.client", true)
.put("node.data", false)
.put("node.master", false)
.put("client.transport.sniff", "true")
.build();
// kitchen sink approach - add a bunch of modules
ModulesBuilder modules = new ModulesBuilder();
modules.add(new EnvironmentModule(new Environment(settings)));
modules.add(new SettingsModule(settings));
modules.add(new NetworkModule());
modules.add(new ClusterNameModule(settings));
modules.add(new ThreadPoolModule(settings));
modules.add(new TransportSearchModule());
modules.add(new TransportModule(settings));
Injector injector = modules.createInjector();
transportService = injector.getInstance(TransportService.class).start();
MasterFaultDetection nodesFD = new NodesFaultDetection(settings, threadPool, transportService);
nodesFD.addListener(new NodeFailureListener());
final DiscoveryNode nodeA = new DiscoveryNode("A", transportService.boundAddress().publishAddress());
final DiscoveryNodesProvider discoveryNodesProvider = new DiscoveryNodesProvider() {
@Override
public DiscoveryNodes nodes() {
System.out.println("discoveryNodesProvider nodes()");
return DiscoveryNodes.newNodesBuilder().put(nodeA).localNodeId("A").build();
}
@Override
public NodeService nodeService() {
System.out.println("discoveryNodesProvider nodeService()");
return null;
}
};
NodesFaultDetection masterFD = new MasterFaultDetection(settings, threadPool, transportService, discoveryNodesProvider);
masterFD.addListener(new MasterNodeFailureListener());
MembershipAction membership = new MembershipAction(settings, transportService, discoveryNodesProvider, new MembershipListener());
PublishClusterStateAction publishClusterState = new PublishClusterStateAction(settings, transportService, discoveryNodesProvider, new NewClusterStateListener());
nodesFD.start();
settings = settingsBuilder()
.put("cluster.name", "testing")
.putArray("discovery.zen.ping.unicast.hosts", "node1", "node2")
//.put("node.client", true)
.put("node.data", false)
.put("node.master", false)
.put("client.transport.sniff", "true")
.build();
// kitchen sink approach - add a bunch of modules
ModulesBuilder modules = new ModulesBuilder();
modules.add(new Version.Module(Version.CURRENT));
modules.add(new EnvironmentModule(new Environment(settings)));
modules.add(new SettingsModule(settings));
modules.add(new NetworkModule());
modules.add(new ClusterNameModule(settings));
modules.add(new ThreadPoolModule(settings));
modules.add(new TransportSearchModule());
modules.add(new TransportModule(settings));
Injector injector = modules.createInjector();
transportService = injector.getInstance(TransportService.class).start();
nodeSettingsService = injector.getInstance(NodeSettingsService.class);
final String localNodeName = "listener-node";
final DiscoveryNode nodeA = new DiscoveryNode(localNodeName, transportService.boundAddress().publishAddress(), Version.CURRENT);
final DiscoveryNodesProvider discoveryNodesProvider = new DiscoveryNodesProvider() {
@Override
public DiscoveryNodes nodes() {
System.out.println("discoveryNodesProvider nodes()");
return DiscoveryNodes.builder().put(nodeA).localNodeId(localNodeName).build();
}
@Override
public NodeService nodeService() {
System.out.println("discoveryNodesProvider nodeService()");
return null;
}
};
this.electMaster = new ElectMasterService(settings);
nodeSettingsService.addListener(new ApplySettings());
this.masterFD = new MasterFaultDetection(settings, threadPool, transportService, discoveryNodesProvider);
this.masterFD.addListener(new MasterNodeFailureListener());
this.nodesFD = new NodesFaultDetection(settings, threadPool, transportService);
this.nodesFD.addListener(new NodeFailureListener());
this.membership = new MembershipAction(settings, transportService, discoveryNodesProvider, new MembershipListener());
this.publishClusterState = new PublishClusterStateAction(settings, transportService,
discoveryNodesProvider, new NewClusterStateListener(),
new DiscoverySettings(settings, new NodeSettingsService(settings)));
nodesFD.start();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment