我很想知道,couchbase服务器如何支持高并发性和高吞吐量。
答案 0 :(得分:5)
这是一个非常广泛的问题,但我将尝试介绍Couchbase快速和可扩展的一些主要原因。
默认情况下,Couchbase中的写入是异步的,复制和持久性发生在后台,智能客户端(SKD)会收到成功或失败的通知。所以基本上任何新的文档或文档的突变都写入ram,然后在后台异步刷新到磁盘并复制到其他节点。这意味着IO /磁盘速度没有等待时间或争用。 (这意味着可以写入ram,然后在将请求持久保存到磁盘或复制到辅助/第三节点之前使节点翻转)。可以同步进行写入,但会大大降低吞吐量。
在处理ram时,写入和读取速度非常快(我们只将我们的集群推迟到20k操作一秒钟),但是大公司很快就会达到400k以上的操作。 LinkedIN仅用4个节点维持此操作率---> http://www.couchbase.com/customer-stories
在传统的数据库体系结构中,通常设置将是主数据库(Mysql / Postgres / Oracle)与从数据库相结合以实现数据冗余,当负载变得更高时,写入/读取也可以在2之间进行分割。 Couchbase旨在用作分布式系统(Couchbase建议在生产中至少使用3个节点)。数据在集群中的节点之间自动分片,从而在多台机器上传播写入/读取。在需要更高吞吐量的情况下,在Couchbase中添加节点就像单击添加节点然后重新平衡群集一样简单,数据将在新的群集映射中自动分区。
所以基本上用ram写入/读取异步磁盘持久性+分布式读写==高吞吐量
希望有所帮助!
答案 1 :(得分:1)
@scalabilitysolved已经给出了很好的概述,但是如果您想要更长(更详细)的描述,请查看couchbase.com上的Couchbase_Server_Architecture_Review