-
-
Save brusic/2dcced28e0ed753b6632 to your computer and use it in GitHub Desktop.
Node Event Detection
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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