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

cassandra如何通过添加节点来提高性能?,cassandra,cassandra-2.0,cassandra-3.0,Cassandra,Cassandra 2.0,Cassandra 3.0,我将构建具有44个节点的ApacheCassandra3.11.X集群。每个应用服务器将有一个集群节点,以便应用程序在本地进行r/w。 我脑子里有几个问题,如果可能的话,请回答 1.在seednode参数中应提及多少服务器Ip? 2.当所有提到的种子节点都关闭时,HA如何工作? 3.在seednode参数中提及所有serverIP的缺点是什么? 4.cassandra如何对除(主键和可调一致性)之外的数据进行扩展。根据我的假设,复制因子可以提高HA机会,但不能提高性能。 那么如何通过添加更多节点

我将构建具有44个节点的ApacheCassandra3.11.X集群。每个应用服务器将有一个集群节点,以便应用程序在本地进行r/w。 我脑子里有几个问题,如果可能的话,请回答

1.在seednode参数中应提及多少服务器Ip? 2.当所有提到的种子节点都关闭时,HA如何工作? 3.在seednode参数中提及所有serverIP的缺点是什么? 4.cassandra如何对除(主键和可调一致性)之外的数据进行扩展。根据我的假设,复制因子可以提高HA机会,但不能提高性能。 那么如何通过添加更多节点来提高性能?
5.卡桑德拉是否有切分机制。

答案如下:

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

  • 顺便说一下,我建议大家阅读——它也包含了很多关于卡桑德拉的信息……

    太好了!!。。有一个疑问尚未澄清。假设有5个节点具有集群,并且有一个键空间“abc”,复制因子为3。因此,如果我向现有集群添加3种模式,那么性能将如何提高?因为无论我们还有多少节点,它都会保留数据的3个副本。如果数据不分片,那么改进性能的逻辑是什么?Cassandra的分区类似于分片-但在某些DBs中,您可以根据密钥范围手动分配它们,在Cassandra中,它们分布在令牌环上,令牌环随着您添加更多服务器而重新平衡。关于添加更多节点,这实际上取决于集群中的数据分布。如果这是好的,那么令牌环将在服务器之间重新分配,当您发送请求时,它们将到达不同的服务器,并且当您有更多的服务器时,它们将更均匀地分配负载,而不是过载,等等。但一切都需要测试