最近,我开始使用Elassandra集群,其中包含两个数据中心,这些数据中心都是使用NetworkTopologyStrategy配置的。
集群详细信息:Elassandra 6.2.3.15 = Elasticsearch 6.2.3 + Cassandra 3.11.4
Datacenter: DC1
=================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN <ip1> 50 GiB 256 ? 6cab1f4c-8937-437d-b010-0a5677443dc3 rack1
UN <ip2> 48 GiB 256 ? 6c9e7ad5-a642-4c0d-8b77-e78d821d904b rack1
UN <ip3> 50 GiB 256 ? 7e493bc6-c8a5-471e-8eee-3f3fe985b90a rack1
Datacenter: DC2
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN <ip4> 47 GiB 256 ? c49c1203-cc38-41a2-b9c8-2b42bc907c17 rack1
UN <ip5> 67 GiB 256 ? 0d9f31bc-9690-49b6-9d88-4fb30c1b6c0d rack1
UN <ip6> 88 GiB 256 ? 80c4d60d-185f-457a-ae9b-2eb611735f07 rack1模式信息
CREATE KEYSPACE my_keyspace WITH replication = {'class': 'NetworkTopologyStrategy', 'DC1': '3', 'DC2': '3'} AND durable_writes = true;
DC2是一种灾难恢复站点,在一个理想的世界中,我们应该能够只在灾难的情况下使用它。
非常感谢!
发布于 2021-08-30 05:28:02
这些复制设置意味着在两个DC之间实时复制密钥空间的数据,每个DC具有3个副本(副本):
CREATE KEYSPACE my_keyspace WITH replication = {
'class': 'NetworkTopologyStrategy',
'DC1': '3',
'DC2': '3'
}Cassandra中的复制是实时的--发送到一个DC的任何写入都同时发送到所有其他DC。与传统的RDBMS或具有主/次或活动/DR的配置不同,Cassandra复制是即时的。
逻辑卡桑德拉机架用于额外的冗余机制。如果C*节点部署在不同的(a)物理机架或(b)公共云可用性区域,Cassandra将将副本分发给不同的机架,以便每个机架都有数据的完整副本。在DC中复制因子为3时,如果机架因任何原因而停机,则其余2个机架中仍有数据的完整副本,并且具有LOCAL_QUORUM (或更低)一致性的读/写请求不会受到影响。
我在这篇文章中更详细地解释了这一点-- https://community.datastax.com/questions/1128/。
如果你是卡桑德拉的新手,我们推荐https://www.datastax.com/dev,它可以链接到短手教程,在那里你可以快速学习卡桑德拉的基础知识--所有这些都是免费的。本教程是一个很好的起点-- https://www.datastax.com/try-it-out。干杯!
https://stackoverflow.com/questions/68979039
复制相似问题