Elastic-Job 多服务器 分片 疑问

衣舞晨风 发布于 2017/06/01 13:23
阅读 261
收藏 0

 

咨询个问题
在多服务分片的场景下,不管是什么类型的任务,当某台服务器挂了,zookeeper会检测到(这里具体是怎么检测的?),
然后触发重新分片,重新分片修改是zookeeper上的节点信息,
其他服务器的上任务会接收到zookeeper的通知?还是任务定时访问zookeeper拉取信息?(个人感觉应该是zookeeper通知,但在代码暂时没有找到)

 

通过架构图来看 应该是job任务会通过listener,来监听zookeeper的变化


在下次任务启动的时候,根据新的分片策略的来进行处理。(也就是当前执行的任务是不受影响的)
我的这个理解对吗?

加载中
0
亮_ShardingSphere
亮_ShardingSphere

可以读一下实现原理:http://dangdangdotcom.github.io/elastic-job/elastic-job-lite/03-design/lite-design/

衣舞晨风
衣舞晨风
谢谢回复
0
端木轩
端木轩

zk和服务器之间会有心跳机制,这是zk自带的。

每次任务执行前会判断是否需要重新分片,阻塞至分片完成才会执行。如果在执行过程中机器发生了变化,只会标记需要重新分片,等任务执行完成后,下一次任务执行前才会进行分片。

衣舞晨风
衣舞晨风
谢谢 回复
返回顶部
顶部