我在两个不同的地理位置(alfa1和alfa2)有两台服务器。
r.tableCreate(' dados',{shards:1,replicas:{alfa1:1,alfa2:1},primaryReplicaTag:' alfa1'})
我需要能够为两个服务器编写代码,但是当我尝试关闭alfa1并写入alfa2时,rethinkdb只允许读取:表test.dados可用于过时的读取,但不能读取最新的读取或写道。
我需要一种方法来为所有副本编写代码,而不仅仅是针对Primary。
这可能吗? rethinkdb是否允许multidatacenter复制?
我认为multidatacenter复制需要允许写入两个数据中心。
我试图删除" primaryReplicaTag"但系统不接受!
欢迎任何帮助!!!
答案 0 :(得分:0)
RethinkDB支持多数据中心复制/分片。
我认为这里的问题是您已经设置了两个群集,这意味着当一个群集出现故障时,群集中只有50%的节点,这意味着您的节点少于51%。
来自故障转移文档 - https://rethinkdb.com/docs/failover/
要为表执行自动故障转移,请满足以下要求 必须得到满足:
- 群集必须具有三个或更多服务器
- 必须将表配置为包含三个或更多副本
- 该表的大部分(大于半数)副本必须可用
尝试只添加一个额外的服务器,您的问题应该得到解决。