我正在修复一个节点并压缩大量的sstables - 我正在考虑减轻cpu / node上的负载,并希望将传入的Web流量路由到集群中的其他节点。
请大家分享一下我如何将互联网流量路由到群集中的其他节点,以便让节点继续在主要维护工作中使用cpu?
提前致谢
答案 0 :(得分:2)
如果您具有可以处理节点关闭的复制因子和一致性级别,则可以在压缩期间从群集中删除该节点
nodetool disablebinary
nodetool disablethrift
这会阻止您的客户端应用程序发送请求并充当协调器,但它仍会从写入中收到突变,因此它不会落后。如果您想进一步减少负载,可以使用
完全删除它nodetool disablebinary
nodetool disablethrift
nodetool disablegossip
但请确保在cassandra.yaml(默认为3小时)中定义的max_hint_window_in_ms
之前再次启用八卦。如果您不知道该节点的提示将过期而未交付,则会导致一致性问题,如果不进行修复将无法解决。
重新连接后等待待处理提示,并且在再次禁用八卦之前,活动提示已降至0。注意:挂起将始终为+1,因为它具有常规计划任务,因此1不为零。
可以使用OpsCenter,nodetool tpstats
或通过JMX org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=HintedHandoff,name=PendingTasks
和org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=HintedHandoff,name=ActiveTasks