Elassandra 复制信息和机架配置
Elassandra replication information and rack configuration
我最近开始使用带有两个数据中心的 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
是一种灾难恢复站点,在理想情况下,我们应该只能在发生灾难时使用它。
- 鉴于我的知识非常有限,我强烈怀疑我们需要
修改机架配置以获得 'proper' D/R 集群(所以
DC1 中的数据在 DC2 中被复制)或者我得到这个
错误的?如果是这样,是否有可遵循的标准准则?
- 当有多个 DC 时,无论机架配置如何,Cassandra 都会自动复制吗? (机架是一种额外的故障证明吗?)
- DC2 的数据比 DC1 多。这纯粹与哈希函数有关吗?
- 这个集群还有其他可以整改的地方吗?
非常感谢!
这些复制设置意味着您的密钥空间的数据在 2 个 DC 之间实时复制,每个 DC 有 3 个副本(副本):
CREATE KEYSPACE my_keyspace WITH replication = {
'class': 'NetworkTopologyStrategy',
'DC1': '3',
'DC2': '3'
}
Cassandra 中的复制是实时发生的——发送到一个 DC 的任何写入都会同时发送到所有其他 DC。与传统的 RDBMS 或具有 primary/secondary 或 active/DR 的配置不同,Cassandra 复制是即时且即时的。
逻辑 Cassandra 机架用于额外的冗余机制。如果您将 C* 节点部署在不同的 (a) 物理机架,或 (b) public 云可用性区域,Cassandra 会将副本分发到单独的机架,以便每个机架都有数据的完整副本。在 DC 中的复制因子为 3 时,如果一个机架由于某种原因出现故障,那么在剩余的 2 个机架中仍然有完整的数据副本,并且 read/write 请求的一致性为 LOCAL_QUORUM
(或更低) ) 不会受到影响。
我在这篇 post 中更详细地解释了这一点 -- https://community.datastax.com/questions/1128/。
如果您是 Cassandra 的新手,我们推荐 https://www.datastax.com/dev which has links to short hands-on tutorials where you can quickly learn the basics of Cassandra -- all free. This tutorial is a good place to start -- https://www.datastax.com/try-it-out。干杯!
我最近开始使用带有两个数据中心的 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
是一种灾难恢复站点,在理想情况下,我们应该只能在发生灾难时使用它。
- 鉴于我的知识非常有限,我强烈怀疑我们需要 修改机架配置以获得 'proper' D/R 集群(所以 DC1 中的数据在 DC2 中被复制)或者我得到这个 错误的?如果是这样,是否有可遵循的标准准则?
- 当有多个 DC 时,无论机架配置如何,Cassandra 都会自动复制吗? (机架是一种额外的故障证明吗?)
- DC2 的数据比 DC1 多。这纯粹与哈希函数有关吗?
- 这个集群还有其他可以整改的地方吗?
非常感谢!
这些复制设置意味着您的密钥空间的数据在 2 个 DC 之间实时复制,每个 DC 有 3 个副本(副本):
CREATE KEYSPACE my_keyspace WITH replication = {
'class': 'NetworkTopologyStrategy',
'DC1': '3',
'DC2': '3'
}
Cassandra 中的复制是实时发生的——发送到一个 DC 的任何写入都会同时发送到所有其他 DC。与传统的 RDBMS 或具有 primary/secondary 或 active/DR 的配置不同,Cassandra 复制是即时且即时的。
逻辑 Cassandra 机架用于额外的冗余机制。如果您将 C* 节点部署在不同的 (a) 物理机架,或 (b) public 云可用性区域,Cassandra 会将副本分发到单独的机架,以便每个机架都有数据的完整副本。在 DC 中的复制因子为 3 时,如果一个机架由于某种原因出现故障,那么在剩余的 2 个机架中仍然有完整的数据副本,并且 read/write 请求的一致性为 LOCAL_QUORUM
(或更低) ) 不会受到影响。
我在这篇 post 中更详细地解释了这一点 -- https://community.datastax.com/questions/1128/。
如果您是 Cassandra 的新手,我们推荐 https://www.datastax.com/dev which has links to short hands-on tutorials where you can quickly learn the basics of Cassandra -- all free. This tutorial is a good place to start -- https://www.datastax.com/try-it-out。干杯!