Zookeeper
zookeeper在分布式系统中为集群提供注册中心来管理集群。
主要采用的是 文件系统+监听通知机制 实现实现分布式锁 分布式事务 分布式任务等。
客户端监听zookeeper中节点的状态,如果节点数据发生给变,zookeeper会通过监听机制通知客户端。
使用注意事项和总结
Zookeeper安装
docker 启动 Zookeeper
shell
docker exec -it zookeeper bash
cd bin/
./zkServer.sh status
Zookeeper锁
java
/*
* ZkConfig
*/
@Configuration
public class ZkConfig {
@Bean
public CuratorFramework cf() {
RetryPolicy retryPolicy = new ExponentialBackoffRetry(3000,2);
CuratorFramework cf = CuratorFrameworkFactory.builder()
.connectString("192.168.136.129:2181,192.168.136.129:2182,192.168.136.129:2183")
.retryPolicy(retryPolicy)
.build();
cf.start();
return cf;
}
}
java
// 创建锁对象
InterProcessMutex mutex = new InterProcessMutex(cf, "/lock");
try {
mutex.acquire();//获取锁
//具体业务代码...
mutex.release();//释放锁
} catch (Exception e) {
e.printStackTrace();
}