sofastack / sofa-jraft

A production-grade java implementation of RAFT consensus algorithm.
https://www.sofastack.tech/projects/sofa-jraft/
Apache License 2.0
3.56k stars 1.14k forks source link

只读节点是否可以指定一个节点读取数据 #989

Open LinHuiG opened 1 year ago

LinHuiG commented 1 year ago

背景是这样的: 我在甲地部署了A、B两个节点,在乙地部署了C,D两个节点。 我让A、B、C作为一个raft集群,D是这个集群的只读节点,并且将C的优先级设置为0,这样就可以保证在服务可用的情况下这个集群主节点一定在甲地。 同时我让C、D、A作为另一个raft集群,B是这个集群的只读节点,并且将A的优先级设置为0,这样就可以保证在服务可用的情况下这个集群主节点一定在乙地。 现在遇到一个小问题,数据同步的方向是主节点向从节点同步(包括只读节点),跨地区网络流量翻倍,有没有办法配置让只读节点从本地的从节点读数据,(第一个集群D从C读数据,第二个集群B从A读数据)。这样降低跨地区的网络开销。

killme2008 commented 1 year ago

目前的 learner 都是从主节点读取,还不支持从其他节点读取,这是一个好的 proposal,可能需要想下怎么设计。