设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 创业者 手机
当前位置: 首页 > 服务器 > 安全 > 正文

案例|S3、Cassandra、HDFS设计中隐藏的高可用法(5)

发布时间:2021-01-04 21:32 所属栏目:53 来源:网络整理
导读:Couchbase 技术不应该和 Apache CouchDB 混为一谈.虽然两者都是开源技术,但它们是两个独立的、有着不同特性以及用来支持不同应用开发和场景的开源项目.在底层结构上,Couchbase 和最初的 Memcached 项目的共同点比与

Couchbase 技术不应该和 Apache CouchDB 混为一谈.虽然两者都是开源技术,但它们是两个独立的、有着不同特性以及用来支持不同应用开发和场景的开源项目.在底层结构上,Couchbase 和最初的 Memcached 项目的共同点比与最初的 CouchDB 项目的共同点更多.虽然 Couchbase 和 CouchDB 使用同样的生成 JSON 文档的算法,但具体的实现方式却不相同.

与 Cassandra 类似,Couchbase 也使用所有节点提供相同服务的对等分布式模型,以消除单点故障出现的可能.但与 Cassandra 不同的是,Couchbase 采用的是可以根据文档内容查询的文档存储而非列族存储.另外,Couchbase 也使用了键空间这一概念将键范围和每个节点关联起来.

下图展示了部署在多个数据中心的 Couchbase 服务器中的组件.Couchbase 将文档集合存储在被称为桶(bucket)的容器中.这些桶的配置管理和文件系统中的文件夹非常类似.桶的类型包括两种:缓存在内存中的桶(存储在内存中且会被清除)和存储在磁盘上并配置了复制的 Couchbase 桶.一个 Couchbase JSON 文档会被写入一个或多个磁盘上.针对高可用性系统的讨论,我们将主要关注 Couchbase 桶.

Couchbase 中高可用的文档.Couchbase 桶是配置用来实现高可用性的文档逻辑集合.Couchbase 客户端通过集群映射配置找到存储在当前活动节点上的文档(第 1 步).如果数据服务器 1 不可用,集群映射配置将使存储在数据服务器 2 上的 doc1 的备份成为当前生效的版本(第 2 步).如果美国西部数据中心宕机,客户端将会使用跨数据中心备份(XDCR)并使存储在位于美国东部地区的数据服务器 3 上的副本成为生效版本(第 3 步)

在内部,Couchbase 使用了一个被称为 vBucket(虚拟桶)的概念.这个概念关联了一个基于散列值切分出来的键空间的某个或某几个部分.Couchbase 的键空间和 Cassandra 中的键空间类似.但在数据存储时,它的键空间管理对外部是透明的.

需要注意的是,一个虚拟桶并不只是包含某个键空间范围,而是可能会包含许多非连续的键空间.值得庆幸的是,用户并不需要考虑键空间的管理或是虚拟桶的工作原理.Couchbase 客户端仅仅是和这些桶进行交互,而让 Couchbase 服务器去考虑应该从哪个节点上找到存储在某个桶中的数据.将桶和虚拟桶区分开来是 Couchbase 实现横向扩展的主要方式.

通过使用集群映射表中的信息,Couchbase 会在主节点和备份节点上各存储一份数据.如果 Couchbase 集群中的任何节点失效,该节点就会被打上一个故障转移的标记,而集群随之会根据这标记更新集群映射表.所有指向该节点的数据请求都会被转向到备份节点.

在某个节点失效与对应备份节点接管后,用户通常会开始一个重平衡操作——向集群中添加新节点以使集群恢复之前的容量.重平衡操作将更新虚拟桶和节点间的映射信息并使之生效.在重平衡期间,虚拟节点会被均匀地在节点间进行重分发以此最小化数据在集群中的移动.一旦某个虚拟桶在新节点上被重新创建,集群会自动禁用之前节点上的虚拟桶并启用新节点上的虚拟桶.

Couchbase 提供了使 Couchbase 集群在整个数据中心宕机的情况下也能不间断运行的功能.针对横跨了多个数据中心的系统来说,Couchbase 提供了一个被称为跨数据中心复制(cross data center replication,XDCR)的功能.这个功能使数据可以自动地备份到远程数据中心并在两个中心里均保持可用.如果一个数据中心发生宕机,另一个数据中心可以负责承担其负载并持续对外提供服务.

Couchbase 的最强特性之一是其内建的高精度监控工具.下图展示了其监控工具的一个示例.

文/来自高可用架构微信公众号

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读