如何在群集内的couchbase服务器中分发服务?

时间:2018-03-06 20:23:49

标签: couchbase

我一直在研究Couchbase Server。

我发现有一些词可以帮助我们完成它的架构。 我想知道,在一个集群内,什么意味着一个活跃的和复制的vbuckets?这些如何与每个节点中存在的服务一起使用?

1 个答案:

答案 0 :(得分:2)

如你所知,vbuckets是Couchbase Server的数据分区机制。 数据服务负责管理运行数据服务的所有节点上的vbucket,活动和副本。活动的vbuckets存储文档。副本vbuckets增加了这些文档的可用性。

如果节点发生故障,可以将副本vbuckets提升为活动vbuckets,这称为故障转移。或者,当故障节点被新节点替换并且群集重新平衡时,可以使用副本vbuckets,从而在新节点中恢复活动vbucket。

运行数据服务的节点有一个投影仪路由器进程,用于监控文档突变并报告索引服务的相关更改,以便它们可以更新他们的索引。

查询服务处理 N1QL 查询。它使用索引服务执行扫描,使用数据服务从活动的vbucket中检索数据。

使用 Couchbase社区版,您必须在群集中的每个节点上运行所有服务,而企业版允许您选择要在每个节点上运行的服务节点。此企业功能是多维缩放

此图片显示了三个服务之间的部分交互。但是,它不会显示查询服务与数据服务的交互。

enter image description here

客户端拥有群集映射,可帮助他们在群集中查找数据和服务。例如,集群映射知道文档属于哪个活动的vbucket(通过从文档密钥或ID创建散列)。如果有副本,它还知道该文档的副本所在的位置。如果从活动vbucket检索数据太慢或节点失败,客户端可能会使用副本。