概述
使用zookeeper自己来实现选举还是有点麻烦的(使用zookeeper实现选举),这个时候可以使用curator
正如官网所说,curator对于zookeeper就像guava对于java,它让我们能更加便利、可靠地使用zookeeper。
这篇博客会介绍如何通过curator来实现选举。
使用方式
引入jar
org.apache.curator
curator-client
2.11.0
org.apache.curator
curator-framework
2.11.0
org.apache.curator
curator-recipes
2.11.0
使用LeaderSelector实现选举
String zookeeperAddr = "127.0.0.1:2181";
//zk的重连策略
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
//获取连接
CuratorFramework client = CuratorFrameworkFactory.newClient(zookeeperAddr, retryPolicy);
client.start();
String path = "/newserver/leader"; //选举的节点信息放在这个path下
//这里建议使用LeaderSelectorListenerAdapter,它实现了stateChanged,当与zk失连后,会自动取消领导权
LeaderSelec