Couchbase Server 架构解析:在客户端和集群间通信中的独特性

首先

在本文中,我們將解釋Couchbase Server的架構之一,主要是關於客戶端和叢集之間的通訊。在進行解釋之前,我們先簡單整理一下Couchbase Server中的網絡通信類型,包括客戶端和叢集之間的連接。

继前文:沟通摘要

Couchbase Server可处理来自客户端、节点之间以及集群之间的通信,还可连接到第三方产品。

客户和群集之间

客户端应用程序通过服务器定义的(多个)访问点与Couchbase Server集群进行通信。每个访问点都提供用于非加密通信和加密通信的端口。

节点之间

集群节点通过相互通信进行数据复制、索引维护、节点状态确认以及传递到集群配置的变化等操作。

集群间

Couchbase Server集群通过使用跨数据中心复制进行相互通信。

连接器

CouchbaseServer-集群与第三方产品进行通信。提供了用于Elasticsearch、Hadoop、Kafka、Spark和Talend的连接器。同时还提供了用于ODBC和JDBC的驱动程序。

客户连接的3个阶段

客户端连接是通过认证和授权、发现和服务连接这三个阶段来建立的。

验证和批准

客户端使用用户名和密码进行身份验证。用户与在Couchbase Server中定义的角色相关联,并通过身份验证获取角色。

发现

集群地图将返回给客户端。它显示了当前的集群拓扑结构。集群地图包含了构成集群的节点列表,节点间的服务配置以及节点间的数据配置的信息。

因为客户端拥有这些信息,所以能够访问适当的节点。这不仅意味着能够访问提供适当服务的节点,还意味着在创建和获取数据时(不是通过搜索查询,而是通过键/ID),能够直接访问负责管理该数据的节点。

这个过程被称为引导程序。

连接到服务

当客户端获取到集群地图后,它将建立必要的连接以执行服务级别的操作。

根据执行操作的类型和内容,可能需要批准。如果用户角色与所需资源访问的适当权限相关联,则允许访问。

如果更改了集群拓扑结构,在连接服务时可能会出现异常情况。在这种情况下,需要重新执行检测,并尝试使用新连接进行操作的重试。

最後

在本文的解释中,特别是在”検出”过程的部分,与其他具有分散架构的数据平台相比,Couchbase Server有其独特的特点。与本文所解释的Couchbase中的过程不同,许多具有分散架构的数据库中存在特殊的节点,负责与客户端进行通信。

这种差异是Couchbase Server实现低延迟和高吞吐量的因素之一。(除了内存优先架构之外)

bannerAds