elastic-job2.1.5 同一个服务在同一个机器上部署两份,算是两个节点吗?

stone247 发布于 2017/07/27 15:25
阅读 598
收藏 0

MySQL连接为什么挂死了?别踩坑!>>>

我有一个服务,都配置了elastic-job任务,并在同一个机器上起了两份,这算是两个节点吗?我的配置如下:

<!--配置作业注册中心 -->
<reg:zookeeper id="regCenter" server-lists="127.0.0.1:2181" namespace="dd-job" base-sleep-time-milliseconds="1000" max-sleep-time-milliseconds="3000" max-retries="3" />

<!-- 配置作业-->
<job:simple id="oneOffElasticJob" class="cn.com.servyou.contract.service.timertask.MyElasticJob" registry-center-ref="regCenter" cron="0/10 * * * * ?" sharding-total-count="1" overwrite="true" />

 

我期望看到的结果是zookeeper每隔10秒会把分片项分配到不同的服务中,但是现实结果是只有一个服务执行了定时任务,另一个则从未执行过。请问这是为什么?

加载中
0
张亮_Apache
张亮_Apache

你设置的分片项不是1么?所以只会分1片,在1个节点执行

stone247
stone247
恩,我原本以为两个节点会轮流执行的,后来才知道默认的分片策略只会选出一个节点,然后一直让这个节点来执行任务。
0
张亮_Apache
张亮_Apache

默认分片策略是选中一个节点并且一直执行,这样省去了切换上下文的开销。如果分片是1,另一个节点可做高可用的备份。

可以自定义分片策略满足各种分配需求,如何自定义分片策略可以阅读文档

stone247
stone247
谢谢你及时的回复
返回顶部
顶部