lig*_*ght 2 amazon-web-services cassandra
我已经在其上设置了带有cassandra的AWS实例,然后还设置了一个自动缩放组,以根据警报启动另外4-8个实例.但Cassandra如何知道何时自动缩放?它如何知道要连接的其他节点?我是否需要在Cassandra中配置一些内容才能嗅探节点?
当我运行节点工具时,自动缩放节点不显示...
[root@ip-10-205-119-104 bin]# sh nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 127.0.0.1 107.12 MB 256 ? a50294ac-2150-4d9e-9dd2-0a56906e9531 rack1
Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless
Run Code Online (Sandbox Code Playgroud)
Cassandra中自动发现的最佳选择是种子节点,它们是"锚"节点,当新节点出现时应该始终存在,并且可以在每次需要时查询集群的节点列表.
因此,您在其配置文件中为每个节点提供种子节点列表(包括种子本身),一旦它上升,它将从种子获取节点列表.当然,这要求种子节点是静态的并且始终在运行(当然,为了冗余,您必须拥有多个种子节点).Cassandra要求它也被IP列出(以避免DNS出现问题).
尽管如此,我认为自动缩放Cassandra并不是一件好事.Cassandra在节点之间划分数据(行),每次添加或删除节点时,都需要重新分配和重新分配行,这取决于数据的大小,需要很长时间(并且可能需要其他管理操作,如修理等).即使你有足够的副本来支付突然的节点丢失(这是使用自动缩放会发生的事情),那也很麻烦.首先,因为Cassandra不会自动退出节点 - 集群将知道节点不可用,但它只是等待它返回,并尝试保持集群尽可能健康(包括将写入保存到节点的机制)某个时段内其他节点中的不可用节点).
因此,您需要观察节点并从外部管理这些起伏.并且,您甚至可能没有时间退出一个节点,并在另一个节点出现之前将所有内容(您的数据)再次设置到位,然后再次向下,并且所有这些都可以完全阻止您的集群.
好吧,也许有一些人这样做,但根据我对Cassandra的知识和经验,它不像你使用网络应用程序那样自动缩放那么简单和神奇,你可能最终会失败数据并且系统非常不稳定和不稳定.
| 归档时间: |
|
| 查看次数: |
2943 次 |
| 最近记录: |