Skip to content

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

@libi

Description

@libi

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

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

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

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

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions