busgo

Results 9 comments of busgo

> 如果选取的Leader的机器发生故障,可以重新选取Leader吗,有具体过程吗,谢谢 Leader的机器发生故障会重新选择出一个新的Leader 1. 所有节点启动时都监听/forest/server/elect/leader是否发生变更。 2. 如果发生变更则不断自己尝试创建属于自己的/forest/server/elect/leader(内容为自己的node id)也就是自己竞选Leader请求(注意使用etcd租约以及事务仅有一个节点创建成功)。 3. 如果当前节点竞选失败,发现已经有新的Leader产生则自己放弃竞选,等待下一个Leader失效再次参与竞选。 4. 如果竞选Leader成功则开始刷新当前任务配置与任务执行计划同步工作,并根据任务执行计划计划式派发任务和收集统计任务执行状态。 > 所有节点都是对等的只有Leader才有权限派发任务 #### 具体可以源码参考 1. [Leader节点变更监听](https://github.com/busgo/forest/blob/12ab013a34e23faebac471b850e353a7cc7b85a7/node.go#L209) 2. [不断尝试发起选举请求](https://github.com/busgo/forest/blob/12ab013a34e23faebac471b850e353a7cc7b85a7/node.go#L240) 3. [节点状态变更通知](https://github.com/busgo/forest/blob/12ab013a34e23faebac471b850e353a7cc7b85a7/node.go#L89) 如果有其他不明白的地方请多多指导,谢谢!

> 前端调度集群只有leader没有follower 请启动多个调度节点因为您只有一个调度节点(单节点肯定只有Leader 没有 Follower了)。 > {"time":"2020-08-04T14:29:00.1275917+08:00","level":"WARN","prefix":"-","file":"executor.go","line":"46","message":"the group:test,select a client error:&errors.errorString{s:"the group:test,has no client to select"}"} 请启动对应的任务作业节点并保证注册在您在前端配置的对应的任务作业分组下【调度集群节点和任务作业节点是分开的】。

可以直接将 src目录下的index.html 复制即可 -- 因为webpack 打包并没有打包index.html页面

请启动执行任务作业的节点

请参考 [bus](https://github.com/busgo/bus)

@sunxingbao 谢谢您提的问题,确实存在这个场景。计划在下一版本完善 再次感谢!

> 感谢你开源的分布式任务调度平台。 请教一个问题,为什么要选一个Job Node Leader 呢?我想了下,不选主,而是全部都是无状态的运行,任何一个node接受到了请求然后将任务投递到etcd,感觉不会有什么问题啊?还是我哪里理解错了吗?谢谢。 1. 如果不选择一个Leader 则会出现如下问题: 维护一个任务由哪个调度节点进行调度。并且要维护调度节点下线状态下 任务分配策略如:(所有任务节点被重新分配至其他在线的节点上)【参考:当当的 elastic-job-lite】。 2. 没有主调度节点和有主调度节点是两种不同实现的方式,具体采用哪种看个人选择。