Cassandra如何通过添加节点来提高性能?

时间:2018-08-02 11:31:31

标签: cassandra cassandra-2.0 cassandra-3.0

我要构建具有44个节点的apache cassandra 3.11.X集群。每个应用程序服务器将具有一个群集节点,以便应用程序在本地进行读/写操作。 我想着有几个问题,如果可以的话,请回答。

1。seednode参数中应提及多少台服务器ip? 2.当上述所有种子节点出现故障时,HA如何工作? 3.在seednode参数中提到所有serverIP的缺点是什么? 4,cassandra如何针对除主键和可调一致性之外的数据进行缩放根据我的假设,复制因子可以提高HA的机率,但不能提高性能。 那么如何通过添加更多节点来提高性能?
5.Cassandra中有分片机制吗?

1 个答案:

答案 0 :(得分:2)

答案井然有序

  1. 建议每个DC至少指向2个节点
  2. 种子/联系节点仅用于初始引导-当程序到达列出的任何节点时,它“学习”整个群集的拓扑,然后驱动程序侦听节点状态更改,并调整可用主机列表。因此,即使种子节点在建立连接后发生故障,驱动程序也将能够到达其他节点
  3. 通常很难维护-您需要使驱动程序的配置参数和节点列表保持同步。
  4. 当RF> 1时,Cassandra可以从任何副本读取数据或将数据写入任何副本。一致性级别规定了多少节点应为读取或写入操作返回答案。添加新节点时,数据将重新分配到新节点,并且如果正确选择了分区键,则新节点将开始接收与旧节点并行的请求
  5. 分区键负责选择将保存与之关联的数据的副本-您可以将其视为分片。但是您在选择分区键时要小心-容易创建太大的分区,或者容易成为“热点”的分区(例如,在群集中接收大多数操作-例如,如果您使用日期作为分区键,并总是写今天的阅读数据。

P.S。我建议阅读DataStax Architecture guide-它也包含有关Cassandra的很多信息...