服务如何分布在集群内的 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。
运行数据服务的节点有一个 Projector 和 Router 进程,用于监控文档变化并向 Index Services 报告相关更改,以便它们可以更新他们的索引。
查询服务处理 N1QL 查询。它使用索引服务执行扫描,使用数据服务从活动 vbuckets 中检索数据。
使用 Couchbase 社区版,您必须在集群中的每个节点上运行所有服务,而 企业版 允许您选择在每个节点上运行哪些服务节点。此企业功能是多维扩展。
这张图片显示了三个服务之间的一些交互。但是,它没有显示查询服务与数据服务的交互。
客户拥有集群地图,可帮助他们在集群中查找数据和服务。例如,集群映射知道文档属于哪个活动 vbucket(通过从文档键或 ID 创建散列)。如果有副本,它还知道该文档的副本所在的位置。如果从活动 vbucket 中检索数据太慢或该节点发生故障,客户端可能会使用副本。
【讨论】:
以上是关于服务如何分布在集群内的 couchbase 服务器中?的主要内容,如果未能解决你的问题,请参考以下文章
存储桶是不是跨越 Couchbase 服务器集群中的所有节点?
Memcache升级版:CouchBase的安装配置与使用说明