Closed HsuChungYuan closed 4 years ago
经过更进一步的测试发现上述情况会在集群配置的机器部分宕机时发生,如配置三台机器只有两台在线,如果集群配置的机器全部正常,则实际心跳间隔正常
测试发现kvstore-set响应极慢也是由于实际心跳间隔不正确导致的,故问题的实质为机器部分宕机时通信行为耗时过长
就是这个函数在获取channel失败时需要耗费2秒钟,导致实际心跳间隔为2秒 OutBoundChannelGroup#getOrConnect
我为获取连接设置了一个超时时间,现在即使部分机器宕机也能正常工作了,这个超时时间具体为多少可以修改,只需要满足一个条件,小于心跳间隔
谢谢。我不是很清楚ChannelFuture的await是否等价于连接超时。Netty的bootstrap的channel options里可能有一个connection timeout。如果有的话,你可以做一个Pull Request,我这边review一下合并到master。
心跳间隔如果设置为1秒,会有如下两种现象: