dcron
dcron copied to clipboard
新增Driver:仅靠节点间通信同步状态
大部分服务节点都部署在同一子网内,节点间通信不需要经过多级路由转换,通信效率会非常高。 所以可以考虑直接通过节点间通信来同步状态,大概思路如下:
- 初始化driver时,传入所有节点ip:port列表。
- 服务启动阶段每个节点依次与其他节点建立 rpc 连接,连接成功后当前节点保存所有节点状态。
- Job 执行判定阶段,直接通过 rpc 获取目前所有节点状态,如状态列表与上次不一致则重建 hash 环。
- 一致性hash选举执行节点。
这么做的优势在于可以去掉存储依赖,并且状态同步将更精准,不会产生心跳周期导致的瞬间状态不一致情况。
当然如果存在节点间跨机房等情况,不适用该 driver。
补充一下这些功能,会更好一些
1、添加任务监控和报警功能: 允许使用者配置邮件或者飞书、钉钉之类机器人,任务失败通知发送到相应地方 另外panic告警 2、bash 命令支持: 环境变量设定支持 / 命令宏替换支持
补充一下这些功能,会更好一些
1、添加任务监控和报警功能: 允许使用者配置邮件或者飞书、钉钉之类机器人,任务失败通知发送到相应地方 另外panic告警 2、bash 命令支持: 环境变量设定支持 / 命令宏替换支持
第一个可以作为一个 web_hook 配置项,任务失败时触发. 第二个可以展开说说,建议新起一个issues。