Skip to content

cause:can not register RM,err:can not connect to services-server.

【问题】

在使用 Seata 时,客户端一直报无法连接服务端:

bash
- 0101 can not connect to 172.18.0.1:8091 cause:can not register RM,err:can not connect to services-server.
io.seata.common.exception.FrameworkException: can not register RM,err:can not connect to services-server.
	at io.seata.core.rpc.netty.NettyClientChannelManager.doConnect(NettyClientChannelManager.java:240)
	at io.seata.core.rpc.netty.NettyClientChannelManager.acquireChannel(NettyClientChannelManager.java:109)
	at io.seata.core.rpc.netty.NettyClientChannelManager.reconnect(NettyClientChannelManager.java:186)
	at io.seata.core.rpc.netty.AbstractNettyRemotingClient$1.run(AbstractNettyRemotingClient.java:115)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:305)
	at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:840)
2024-01-20 02:04:03 [timeoutChecker_2_1] INFO  i.s.c.r.n.NettyClientChannelManager
 - will connect to 172.18.0.1:8091
2024-01-20 02:04:03 [timeoutChecker_2_1] INFO  i.s.c.r.netty.RmNettyRemotingClient
 - RM will register :jdbc:mysql://10.211.55.9:3306/bchtx-cloud
2024-01-20 02:04:03 [timeoutChecker_2_1] INFO  i.s.c.rpc.netty.NettyPoolableFactory
 - NettyPool create channel to transactionRole:RMROLE,address:172.18.0.1:8091,msg:< RegisterRMRequest{resourceIds='jdbc:mysql://10.211.55.9:3306/bchtx-cloud', version='1.7.1', applicationId='bchtx-system', transactionServiceGroup='bchtx-system-group', extraData='null'} >
2024-01-20 02:04:13 [timeoutChecker_1_1] ERROR i.s.c.r.n.NettyClientChannelManager
 - 0304 register RM failed.

【解决】

在查看 Nacos 的服务列表信息中发现,Seata 服务端的 IP 与其他服务不在同一网段,而是处于 Docker 容器内部的网络中。

经过排查,确定是启动 Nacos 容器时漏加了 network_mode 参数,导致问题的产生。只要保证 Seata 服务端与其他服务在同一网段即可。

编程洪同学服务平台是一个广泛收集编程相关内容和资源,旨在满足编程爱好者和专业开发人员的需求的网站。无论您是初学者还是经验丰富的开发者,都可以在这里找到有用的信息和资料,我们将助您提升编程技能和知识。
专业开发
高端定制
售后无忧
站内资源均为本站制作或收集于互联网等平台,如有侵权,请第一时间联系本站,敬请谅解!本站资源仅限于学习与参考,严禁用于各种非法活动,否则后果自行负责,本站概不承担!