1、zk遇到的坑,采用zookeeper的EPHEMERAL节点机制实现服务集群的陷阱
https://yq.aliyun.com/articles/227260
2、zk目录/task/mysql/taskId
123/server_1
124/server_2
List<String> children = getchildren().forpath("/task/mysql/123")
occupyPath后面多一个server唯一标识即可
不包含-lock-,则代表是某个server的唯一标识
zk抢占节点
client.intransaction().create().withmode(createmode.ephemepral).forpath().and().commit()
一些阀值:最大任务限制、当前任务数、任务总数、服务集群数
当前任务数<任务总数/服务集群数+1
3、失败次数限制超过最大限度,不在尝试加载任务
InterProcessMutex(client,path) mutex
mutex.acquire(5000,时间单位)
4、负载均衡循环判断:当前任务数>任务总数/服务集群数+1,然后逐个释放任务节点
5、CuratorFrameworkFactory.builder().connectString().connectTimeouts().sessionTimeMs().namespace().retrypolicy(
ExponentialBackoffRetry
).build()
https://www.cnblogs.com/haoxinyue/p/6561896.html
https://www.cnblogs.com/binyue/p/8647733.html