失败检测与恢复

gossip可检测其他节点是否正常以避免将请求路由送至不可达或者性能差的节点(后者需配置为dynamic snitch方可)。

  • 可通过配置phi_convict_threshold来调整失败检测的敏感度。
  • 对于失败的节点,其他节点会通过gossip定期与之联系以查看是否恢复而非简单将之移除。若需强制添加或移除集群中节点需使用nodetool工具。
  • 一旦某节点被标记为失败,其错过的写操作会有其他replicas存储一段时间. (需开启hinted handoff,若节点失败的时间超过了max_hint_window_in_ms,错过的写不再被存储). Down掉的节点经过一段时间恢复后需执行repair操作,一般在所有节点运行nodetool repair以确保数据一致。

dynamic snitch特性:查询请求路由到某个节点,如果这个节点宕掉或者响应慢,则应该能够查询其他节点上的副本。
删除节点:节点失败后,仍然在集群中,通过removenode可以将节点从集群中下线。区别就是status如果不存在就说明下线了. DN则仍然在集群中。
失败节点数据:数据无法正常存储到失败的节点,所以会由其他节点暂时保存,等它恢复之后,再将错过的写补充上去。

results matching ""

    No results matching ""