elasticsearch ElasticSearch:使用轮询的群集到群集复制,elasticsearch,cluster-computing,database-replication,elasticsearch,Cluster Computing,Database Replication" /> elasticsearch ElasticSearch:使用轮询的群集到群集复制,elasticsearch,cluster-computing,database-replication,elasticsearch,Cluster Computing,Database Replication" />

elasticsearch ElasticSearch:使用轮询的群集到群集复制

elasticsearch ElasticSearch:使用轮询的群集到群集复制,elasticsearch,cluster-computing,database-replication,elasticsearch,Cluster Computing,Database Replication,我有两个DC(A和p),每个DC在主动/被动部署中运行自己的ES群集, 我希望以尽可能低的延迟(最多60秒)连续地将所有数据从A镜像到P。 由于额外的计算资源和复杂性,我尽量避免使用另一个数据库(如CouchBase)作为主要数据库 我可以继续使用快照和恢复机制(请参阅),但我担心p不会很快得到更新。 我想为更改编写一个自定义轮询器,轮询a的更改(例如,基于上次轮询时间戳),并将其应用于P(如Shay在这里建议的:) 这是一个可行的选择吗?有什么缺点吗?您能建议另一种策略吗?您确定您的定制plo

我有两个DC(A和p),每个DC在主动/被动部署中运行自己的ES群集, 我希望以尽可能低的延迟(最多60秒)连续地将所有数据从A镜像到P。 由于额外的计算资源和复杂性,我尽量避免使用另一个数据库(如CouchBase)作为主要数据库

我可以继续使用快照和恢复机制(请参阅),但我担心p不会很快得到更新。 我想为更改编写一个自定义轮询器,轮询a的更改(例如,基于上次轮询时间戳),并将其应用于P(如Shay在这里建议的:)


这是一个可行的选择吗?有什么缺点吗?您能建议另一种策略吗?

您确定您的定制ploller在60秒内完成复制更改吗?如果是的话,你可以去做。这当然取决于变化的数量,但我打算使用批处理,所以我希望它能做到。为什么你不同时执行从A到P的所有操作呢?也就是说,您在P中同时写入/更新A,您也会这样做。我担心写入两个集群会带来一致性问题。例如,如果对A的写入成功,然后对B的写入失败(例如,版本不匹配…),我还必须回滚对A的更改,但我可能无法这样做(数据可能已再次更新)。或者,如果一个集群离线,我必须使用某种持久队列来“记住”更新,直到它恢复在线。这增加了复杂性。