关闭节点服务,隔离节点服务

alter system stop server ‘10.11.253.70:2882’;
alter system isolate server ‘10.11.253.70:2882’;

V3版本的,关闭节点服务 和 隔离节点服务,它们的处理逻辑,好像并没有什么不同?

stop server和isolate server实现的原理都是一样的,都是将server状态标记为stop,然后把上面的leader副本切走,但是这两个指令在执行的时候校验程度不一样,stop server校验比较严格,所以在observer发生故障时需要紧急stop时可能会执行stop server不成功,而isolate server几乎不做校验,所以当紧急情况需要下线observer执行stop server失败时可以先执行isolate server。

两种指令具体的动作大概为:
stop server会检查排除掉指定server后,剩余副本是否够多数派。为避免抖动,stop server还会检查剩余副本是否和leader同步,并同步等leader全部切走。
isolate server只是要把读写流量切走,因此不检查多数派。

谢谢 谢谢