我打算设置一个带有两个集群的Couchbase系统:主集群处于活动状态,另一个集群处于备份状态(使用XDCR进行复制)。在活动集群关闭时,在此Couchbase系统前使用haproxy将(手动)从活动集群切换到备份集群。
在测试之前,我想问一些关于这种拓扑的建议。这有什么问题吗?我可以在生产环境中顺利运行吗?
我以为我无法在此拓扑中使用vbucket感知客户端。因为客户端只知道haproxy,所以我无法从客户端向couchbase服务器发送直接请求(具有特定文件的vbucket)。是吗???
答案 0 :(得分:3)
从您的情景来看,这听起来像开销。为什么要将“待命”群集作为备份?
相反,您可以将所有四个couchbase服务器实例作为一个集群(每个实例在其自己的盒子上运行)...因此您将充分利用vBucket体系结构,它将由本机管理。如果其中一个实例关闭,您将不会丢失数据,因为启用的复制将在其他节点中具有镜像副本。
我们在生产中使用此设置没有任何问题。我们不时会将其中一个实例关闭以进行维护,而其余的群集仍会运行,并且对Couchbase客户端完全透明,例如:没有停工时间!
在我看来,XDCR对于地理位置分离的位置是有意义的(因此您将在美洲的一个群集保留在EMEA中,等等)。如果您所有实例位于同一位置,那么Couchbase群集技术将提供高可用性(HA),并且已经内置了故障转移支持。