Couchbase交叉数据中心复制(XDCR)将源桶中的所有数据复制到目标桶(连续)。
如果您在旧金山数据中心的纽约数据中心和存储区B中存在存储区A,并且您将存储区A中的XDCR配置为存储区B,则存储区A中的所有数据都将复制到存储区B.您无法配置任何附加过滤器。但是,这种复制只是一个方向。因此,如果您也直接将数据写入存储桶B,则不会在两个数据中心都有数据。如果您希望在两个数据中心都拥有所有数据,则还需要将存储区B中的XDCR配置到存储区A.这在手册中称为双向复制。在这2个群集配置中,它会为您提供所有数据中心的所有数据。
Couchbase客户端SDK配置为与单个群集交谈。这意味着客户端必须知道要连接到哪个群集,如果您的旧金山群集在纽约群集中存储了不同的数据,则您的应用程序必须知道在哪里查找数据。
对于高可用性用例,通常在区域之间建立双向复制,并且应用程序被设计为偏好集群。部署在纽约附近的应用程序可能更喜欢纽约群集。只要没有问题,它就会读取并写入该群集。如果出现问题,请说纽约数据中心关闭,应用程序可以通过切换到旧金山数据中心继续运行。但是,所有这些逻辑都将在您的应用程序中。
Robin提到的“智能集群映射”用于查找单个集群内的数据。理解这一点很重要,不会找到存储在不同地区的数据。
非常感谢!这是我正在寻找的详尽答案!我是在要求它准备一篇论文的相关工作。不幸的是很难找到这个Couchbase行为的参考。你能否提出任何涉及它的文件? – cesare 2013-03-27 12:02:21
您可能已经查阅了[手册](http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-admin-tasks-xdcr.html)。此外,您可以观看[网络研讨会](http://info.couchbase.com/2013-webinar-couchbase-and-cross-datacenter-replication.html)。 – mschoch 2013-03-27 15:54:32