【产品名称】
【产品版本】
【问题描述】
在重建observer节点的时候,社区版视频演示的是直接发命令 kill -9 pidof observer。杀掉observer进程后,等待observer完全下线,再清除对应的log,data , run等目录的内容。最后发命令重启observer.
这个流程有几个问题:
(1)如果在kill掉observer的时候observer里面还有交易正在执行,observer会执行什么操作保证数据完整一致性?用户看到的是交易状态会是什么?
(2)如果在kill之前通过监控可以确认没有交易执行,或者通过停止服务、中断交易网关的方式停止新交易,这样需要大量外围的监控和运维操作相配合。observer自己内部有没有比较优雅的停机方式,比如发出停机指令后(不是kill命令),ob自行判断是否存在用户交易和进程,如果有的话会等待交易结束再停止服务和ob自己的系统进程。这样的话就不需要太多外界干预了。
(3)kill方式的另一个问题是,如何确保被kill掉的observer没有正在向其它副本同步数据。如果一个Observer被kill掉时,数据同步的结果会不会收到影响?