Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

新增Driver:仅靠节点间通信同步状态 #47

Open
libi opened this issue Apr 28, 2023 · 2 comments
Open

新增Driver:仅靠节点间通信同步状态 #47

libi opened this issue Apr 28, 2023 · 2 comments
Assignees

Comments

@libi
Copy link
Owner

libi commented Apr 28, 2023

大部分服务节点都部署在同一子网内,节点间通信不需要经过多级路由转换,通信效率会非常高。
所以可以考虑直接通过节点间通信来同步状态,大概思路如下:

  1. 初始化driver时,传入所有节点ip:port列表。
  2. 服务启动阶段每个节点依次与其他节点建立 rpc 连接,连接成功后当前节点保存所有节点状态。
  3. Job 执行判定阶段,直接通过 rpc 获取目前所有节点状态,如状态列表与上次不一致则重建 hash 环。
  4. 一致性hash选举执行节点。

这么做的优势在于可以去掉存储依赖,并且状态同步将更精准,不会产生心跳周期导致的瞬间状态不一致情况。

当然如果存在节点间跨机房等情况,不适用该 driver。

@libi libi added the idea label Apr 28, 2023
@ailose
Copy link

ailose commented Apr 28, 2023

补充一下这些功能,会更好一些

1、添加任务监控和报警功能
允许使用者配置邮件或者飞书、钉钉之类机器人,任务失败通知发送到相应地方
另外panic告警
2、bash 命令支持
环境变量设定支持 / 命令宏替换支持

@libi
Copy link
Owner Author

libi commented Apr 28, 2023

补充一下这些功能,会更好一些

1、添加任务监控和报警功能: 允许使用者配置邮件或者飞书、钉钉之类机器人,任务失败通知发送到相应地方 另外panic告警 2、bash 命令支持: 环境变量设定支持 / 命令宏替换支持

第一个可以作为一个 web_hook 配置项,任务失败时触发.
第二个可以展开说说,建议新起一个issues。

@libi libi self-assigned this Dec 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants