cassandra - 三节点 Cassandra 集群所有节点在同一个 dc 中配置不同的机架
问题描述
我是卡桑德拉的新手。在我们的生产环境中,三个节点 Cassandra 集群正在运行并为生产流量提供服务,但我在下面提到了一些疑问:-
1) 所有节点都配置在不同的机架中,即机架 1、机架 2 和机架 3 在同一个 dc 中。很好还是这种配置有一些缺点?
2) 我们对除系统表之外的所有键空间使用 rf2 和网络拓扑,并且这些系统表配置有 rf2 和最简单的策略 .. 可以吗,还是需要更改?我们应该增加system_auth的复制因子吗?..请告诉我..
3) 现在我想在同一个 dc 中添加另一个节点,在不影响实时流量的情况下,最好的程序是什么?Cassandra 版本是 Apache cassandra 3.11。
提前致谢..
解决方案
Cassandra 被设计成一个分布式系统。Cassandra 的分布式架构专为多数据中心部署量身定制。这些功能足够强大和灵活,您可以配置集群以获得最佳地理分布,为故障转移和灾难恢复提供冗余。
多数据中心部署非常适合全球解决方案,其中某些应用程序在一个区域运行,而其他应用程序在另一个区域运行,但使用单个 Cassandra 集群,该集群在跨区域的多个数据中心工作。
对于单区域应用程序,仍然拥有多个数据中心是首选选项,因为即使一个区域出现故障,它也可以提供灾难恢复。
Ans 1)对于单个 DC Cassandra 集群,建议使用 RF3 的 4 个节点。机架 1 有 2 个节点,机架 2 有 2 个节点。请记住,同一机架中的节点比不同机架中的节点具有更快的网络。在同一个 Rack 上使用两个节点时,使用 LOCAL_QUORUM 的查询将比在具有不同机架上的所有节点的集群上的查询更快。
如果您不关心查询延迟,与两个 RACK 部署相比,不同机架(3 个机架)中的所有节点将提供更好的灾难恢复。话虽如此,始终建议对生产集群使用多 DC 部署。
Ans 2)始终建议增加 System_auth 密钥空间的复制因子并将复制类更改为 NetworkTopologyStrategy。请按照此文档了解更多详细信息 https://docs.datastax.com/en/security/6.0/security/secSystemKeyspace.html
Ans 3)是的,您可以轻松地将新节点添加到现有集群,而不会影响流量。请按照此文档了解更多详细信息:https ://docs.datastax.com/en/archived/cassandra/3.0/cassandra/operations/opsAddNodeToCluster.html
推荐阅读
- charts - 在 Primefaces 5.2 中更改字体大小
如何更改 p:chart bar jqplot-xaxis-tick 中的字体大小?我使用 Primefaces 5.2 并覆盖样式类不起作用。
email - 在 Azure 逻辑应用中使用二进制附件发送电子邮件
- jquery - Spectre CSS - 根据 id 值打开模式
- ruby-on-rails - 使用自定义类型和属性 API 时出现“TypeError: can't quote”
- oracle - 在 Oracle 中自定义过滤和应用 Char 索引
- angular - 使用 ngFor 更改第一个选择的角度选择会影响第二个选择
- angular - Angular 5 Validators.required 仅在特定条件下
- css - 如何在CSS中围绕Png图像本身创建悬停
- clojure - Clojure 中的简单猜谜游戏无法正常工作
- java - java spring 中使用 AggregationOperation 的 Mongodb 内部连接:错误 [需要'cursor' 选项,但带有解释参数的聚合除外]