Open fengjiachun opened 2 years ago
future 加上等待超时的参数 不能解决本质问题(并发的原因设置的时间可能被覆盖) 需要加一个同步锁可以根本解决这个问题
请问作者,这个问题解决了么在1.6.5 和1.6.6 的版本中? 我 的项目中 在集成 jraft来实现分布式的一致性,之前引用了1.6.4版本的bolt, 启动时候就报错: ERROR 13109 --- [27.0.0.1:8261>0] c.a.s.j.rpc.impl.AbstractClientService : Fail to connect 127.0.0.1:8263, remoting exception: com.alipay.remoting.exception.RemotingException: Create connection failed. The address is 127.0.0.1:8263. 我不能确定是否是这个问题引起的,将bolt版本升级到了1.6.6最新版,仍然没有解决 集群的启动问题.希望可以得一些支持哈
虽然但是,我还是通过设置 nodeOptions.setRpcConnectTimeoutMs(5000); 解决了
这个问题好奇怪呀,我这边集群一直运行正常, 昨天我吧 datapath 目录下的log、raft_meta、snapshot 目录下的 文件都删掉 重起后 又 无法选主了,提示无法连接 . 这次设置超时也没解决. 还是没有真正搞明白这块的 起因呀. 大佬 帮忙回答下上面的问题哈,就是这个问题解决了么?
这个问题好奇怪呀,我这边集群一直运行正常, 昨天我吧 datapath 目录下的log、raft_meta、snapshot 目录下的 文件都删掉 重起后 又 无法选主了,提示无法连接 . 这次设置超时也没解决. 还是没有真正搞明白这块的 起因呀. 大佬 帮忙回答下上面的问题哈,就是这个问题解决了么?
找到问题原因了, 在定义 group: 127.0.0.1:8261, 127.0.0.1:8262, 127.0.0.1:8263 逗号 后有空格导致的, 代码木有做trim 处理, 代码提示也 看没看出来, 很难看出来呀 :
NodeImpl : Node <storage/127.0.0.1:8262> can't do preVote as it is not in conf <ConfigurationEntry [id=LogId [index=0, term=0], conf=127.0.0.1:8261, 127.0.0.1:8262, 127.0.0.1:8263, oldConf=]>.
Describe the bug https://github.com/sofastack/sofa-bolt/blob/master/src/main/java/com/alipay/remoting/connection/AbstractConnectionFactory.java#L321
这个 option 应该是全局的,每次建连时设置会被覆盖,所以建连超时设置不一定有效
下面的 future 或许应该加上等待超时的参数,比如下面这个截图,入参 connectTimeout 为 100ms,但是建连时间仍然消耗了 1s
版本 1.6.4
Expected behavior
Actual behavior
Steps to reproduce
Minimal yet complete reproducer code (or GitHub URL to code)
Environment
java -version
):1.8uname -a
):