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

Posted

技术标签:

【中文标题】服务如何分布在集群内的 couchbase 服务器中?【英文标题】:How are the services distributed in an intra-cluster couchbase server? 【发布时间】:2018-03-06 20:23:49 【问题描述】:

我一直在研究 Couchbase 服务器。

我发现有些词可以帮助我们理解它的架构。 我想知道,在集群内,活动和副本 vbuckets 是什么意思?这些如何与每个节点中存在的服务一起工作?

【问题讨论】:

【参考方案1】:

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

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

运行数据服务的节点有一个 ProjectorRouter 进程,用于监控文档变化并向 Index Services 报告相关更改,以便它们可以更新他们的索引。

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

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

这张图片显示了三个服务之间的一些交互。但是,它没有显示查询服务与数据服务的交互。

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

【讨论】:

以上是关于服务如何分布在集群内的 couchbase 服务器中?的主要内容,如果未能解决你的问题,请参考以下文章

存储桶是不是跨越 Couchbase 服务器集群中的所有节点?

Couchbase 集群中较慢的插入性能

Couchbase 的四种微服务架构

Memcache升级版:CouchBase的安装配置与使用说明

分布式 NoSql 数据库 Couchbase 的3个应用案例

如何在couchbase服务器中正确创建子查询的索引?