Closed fengjiachun closed 5 years ago
查看用户指南 https://www.sofastack.tech/projects/sofa-jraft/jraft-user-guide/
搜索 learner
在使用JRaft RheaKV时,用法也是一样的吗? 使用Learner角色时,能不能让Learner的数据同步是异步的。 例如如下场景: 异地灾备,为了跨城数据备份,需要在多个城市使用Learner做数据同步;但为了不影响主服务集群的响应速度,采取异步同步,然后异步可能丢少量数据等注意事项?
在使用JRaft RheaKV时,用法也是一样的吗? 使用Learner角色时,能不能让Learner的数据同步是异步的。 例如如下场景: 异地灾备,为了跨城数据备份,需要在多个城市使用Learner做数据同步;但为了不影响主服务集群的响应速度,采取异步同步,然后异步可能丢少量数据等注意事项?
用法一样
@fengjiachun 您好 我还有一个问题: 假设我启动6台服务,A、B、C为正常节点,E、F、G为learner节点
我写入部分数据后,A、B、C均挂掉,我想让E、F、G改为正常节点提供服务
我手动停掉E、F、G,修改服务setInitialServerList为A、B、C设置为learner(服务之后启动希望能追赶数据),E、F、G不加learner后缀,启动E、F、G后,无法正常选主,客户端查询报错无法连接B节点,我应该如何做呢
我的场景为A、B、C为城市1,E、F、G为城市2 城市1直接停电导致只能使用城市2的备份数据
我写入部分数据后,A、B、C均挂掉,我想让E、F、G改为正常节点提供服务
需要明白的是,E,F,G 可能并没有包含全部数据,因为 E,F,G 不参与形成多数派; 在你接受可以丢失少量数据的前提下,分别这样调用 E,F,G 三个节点试试:
CliService#resetPeer(groupId, E, [E, F, G]);
CliService#resetPeer(groupId, F, [E, F, G]);
CliService#resetPeer(groupId, G, [E, F, G]);
我手动停掉E、F、G,修改服务setInitialServerList为A、B、C设置为learner(服务之后启动希望能追赶数据),E、F、G不加learner后缀,启动E、F、G后,无法正常选主,客户端查询报错无法连接B节点,我应该如何做呢
这个失败的原因应该是 InitialServerList 只为初始化使用,E,F,G 节点是有自己的元数据的,优先从自己元数据读取,只有在新集群才会读取 InitialServerList
请问这个任务是否已完成,如何查看该功能的使用方式