`
zsjg13
  • 浏览: 145853 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

Couchbase 架构

阅读更多

    在我们转向用Couchbase开发之前,理解大体的 Couchbase 架构是很有用的。虽然,在单节点集群上编码应当通常和在10个节点的集群上没什么不同,支撑一个产品应用确实需要深入理解当你的应用需要横向扩展时,会有什么问题发生。下面的章节中,我将详细阐述一些我们已经看到的概念,以及关于 Couchbase 集群是如何工作的一些基础知识。

 

1、Couchbase 集群

    对于所有的 Couchbase 部署来说,集群是一个基础的概念。它在 NoSQL 世界中是一个常见的术语,通常就是指一组节点相互协调地在数据存储上执行操作。然而,不同的 NoSQL 产品,集群中节点是如何表现的变化很大。在一些系统中,所有的节点 are peers(平辈,同事),没有区别。在其他一些系统中,集群是通过主从配置建立起来的。

    在一个 Couchbase cluster 中,节点间是相互可交换信息的。每一个节点都包含了一个集群管理器负责了解集群中其他节点的状态,也让其他节点了解自己的状态。因为每个节点都有自己的集群管理器组件,this allows Couchbase Server to scale out linearly with no single point of failure。

 

2、复制

    集群管理器的最重要的任务之一就是确保所有的数据对于客户端来说都是可用的。Couchbase Server 复制是这么工作的:让一个节点成为某个文档的主节点,最多3个从节点维护那个文档的一个副本。当集群管理器检测到一个节点故障,它就会负责将 replicas 提升为主节点。

 

3、Balancing and rebalancing

    Sharding 就是将数据均匀地分散到集群中的节点上。在大多数 sharded systems,管理员负责选择一个 shard key 用于数据分发。例如,a Users table might be sharded on a Username field。如果这个 shard key 被证实 to be poorly distributed(imagine 30 percent of users having usernames starting with T),then the nodes will not be well balanced。

    Couchbase,相反,是 auto-sharded 并保证了 balance。还记得 Couchbase documents 是使用 key/value 方式存储的。尽管用户提供 key,Couchbase SDKs 在每个key上使用一个strong and cryptographic hash 来保证这些key将会均匀地分布在集群中。该 hasing 动作考虑了集群的拓扑,这就意味着,不管是2个还是20个节点,这些key仍然是balanced。

    即使 SDKs 以及 服务器一起确保正确的sharding,如果一个节点(或多个节点)脱机了(goes offline),这样的balance将会临时被打破。这是因为 replicas 被提升了。当有节点被添加或移除时,集群管理器将会 reblance the data across the nodes。一个新添加的节点可能没有准备好完全加入到集群中,直到执行了一个 rebalance。前面说过,可以在 Couchbase Console 中完成此任务。

分享到:
评论

相关推荐

    Couchbase Developer's Guide 开发指南2.0.pdf.zip

    1. **Couchbase架构**:介绍Couchbase的分层架构,包括数据节点、查询节点、事件处理器等,以及它们如何协同工作以提供高可用性和可扩展性。 2. **安装与配置**:详细步骤指导如何在不同的操作系统上安装Couchbase ...

    Couchbase

    Couchbase 架构基于分布式微服务,能够在多节点集群中提供高可用性和可扩展性。每个节点都包含数据复制、故障转移和负载均衡功能,确保数据的持久性和服务的连续性。此外,Couchbase 自动处理数据分区和复制,使得...

    Couchbase_Server_An_Architectural_Overview.pdf

    Couchbase Server 架构的主要特点包括: - 规模扩展性:能够通过增加服务器节点来提升性能和容量,适应大规模数据处理的需求。 - 高并发支持:适合处理大量并发用户请求,如成千上万甚至百万级。 - 全球分布式用户...

    couchbase的使用手册

    - **架构与概念**:Couchbase Server的基本架构,包括节点、集群、内存配额、桶(Buckets)、vBuckets、磁盘存储、故障转移、客户端接口和管理工具等。 ### 安装Couchbase Server 安装部分提供了不同操作系统下的...

    couchbase 社区版5.11

    Couchbase的核心特性之一是它的内存优化架构,它将数据存储在内存中,从而实现快速的数据访问和低延迟。这种设计使得Couchbase非常适合用作高并发和实时应用场景的数据存储,如电子商务、物联网(IoT)和大数据分析。 ...

    Couchbase4.5.1-el6安装包

    1. 分布式架构:Couchbase使用分片(Sharding)技术将数据均匀分布在集群中的各个节点上,确保高并发访问时的数据读写性能。每个节点都有自己的内存数据缓存,称为Couchbase的内存优化层(Memcached),进一步提高了...

    couchbase中文

    这种架构优于传统RDBMS的分区方法和Memcached的哈希分配,更加灵活且适应性强。 总结来说,Couchbase是一个强大的分布式数据库系统,通过集群管理和buckets机制,提供高可用性、可扩展性和灵活的数据管理。它的...

    couchbase-lite-java-core, Couchbase Lite核心库.zip

    couchbase-lite-java-core, Couchbase Lite核心库 是什么? Couchbase Lite Android库分为两个部分:这个模块没有对 Android API的依赖,而且在非Android环境中可用。couchbase-lite-android - 对 Android API有

    Go-go-couchbase-Go语言中的Couchbase敏捷客户端

    此外,Couchbase的分布式架构使其具备了高可用性和水平扩展性,能够轻松应对大规模并发请求。 **二、go-couchbase客户端** 1. **连接管理**:`go-couchbase`客户端负责建立并维护到Couchbase服务器的连接,它支持...

    couchbase核心介绍

    Couchbase 是一种流行的 NoSQL 数据库系统,它以其灵活的数据模型、无需预定义数据库架构的特性以及易于扩展的性能而受到关注。在 Couchbase 中,数据存储方式主要有两种:键值对(key-value)和 JSON 文档。 1. **...

    couchbase C api

    3. **分布式架构**:Couchbase通过分片和复制实现数据的分布式存储,确保高可用性和水平扩展性。 4. **全文搜索**:内置的Lucene搜索引擎支持复杂的全文搜索功能。 5. **分析服务**:通过N1QL(Couchbase的SQL-like...

    Learning Couchbase

    - Couchbase的基础概念和架构,包括其核心组件的介绍,例如Couchbase Server、Couchbase Lite和Couchbase Sync Gateway。 - 如何安装和配置Couchbase Server,包括集群的创建、维护和管理。 - 深入探讨Couchbase的...

    Laravel开发-laravel-couchbase

    1. 分布式架构:Couchbase 采用分布式架构,支持自动分片和数据复制,确保高可用性和可扩展性。 2. 多模型:Couchbase 支持文档型、键值对、图形等多种数据模型,满足不同应用场景的需求。 3. 弹性扩展:可以轻松...

    couchbase-server-enterprise-4.1.0-centos6.x86_64.rar

    它的分布式架构允许数据跨多个节点自动复制和分发,从而实现高可用性和可扩展性。4.1.0版本可能包含一些特定的性能优化和新功能,例如增强的数据安全性、新的查询语法或管理工具改进。 在Linux环境中部署Couchbase ...

Global site tag (gtag.js) - Google Analytics