Seata 集群使用db数据库注册到Nacos集群的服务使用了内网IP导致项目不能连接到Seata
2021-01-21 00:03:43.459 ERROR 8984 --- [ main] i.s.c.r.netty.NettyClientChannelManager : 0101 can not connect to 172.17.16.69:18091 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:210) ~[seata-all-1.3.0.jar:1.3.0]
at io.seata.core.rpc.netty.NettyClientChannelManager.acquireChannel(NettyClientChannelManager.java:103) ~[seata-all-1.3.0.jar:1.3.0]
at io.seata.core.rpc.netty.NettyClientChannelManager.reconnect(NettyClientChannelManager.java:175) ~[seata-all-1.3.0.jar:1.3.0]
at io.seata.core.rpc.netty.RmNettyRemotingClient.registerResource(RmNettyRemotingClient.java:181) [seata-all-1.3.0.jar:1.3.0]
at io.seata.rm.AbstractResourceManager.registerResource(AbstractResourceManager.java:121) [seata-all-1.3.0.jar:1.3.0]
at io.seata.rm.datasource.DataSourceManager.registerResource(DataSourceManager.java:146) [seata-all-1.3.0.jar:1.3.0]
at io.seata.rm.DefaultResourceManager.registerResource(DefaultResourceManager.java:114) [seata-all-1.3.0.jar:1.3.0]
at io.seata.rm.datasource.DataSourceProxy.init(DataSourceProxy.java:99) [seata-all-1.3.0.jar:1.3.0]
at io.seata.rm.datasource.DataSourceProxy.<init>(DataSourceProxy.java:85) [seata-all-1.3.0.jar:1.3.0]
at io.seata.rm.datasource.DataSourceProxy.<init>(DataSourceProxy.java:74) [seata-all-1.3.0.jar:1.3.0]
Caused by: io.seata.common.exception.FrameworkException: connect failed, can not connect to services-server.
at io.seata.core.rpc.netty.NettyClientBootstrap.getNewChannel(NettyClientBootstrap.java:177) ~[seata-all-1.3.0.jar:1.3.0]
... 88 common frames omitted
解决办法:
#启动sentinel的时候 指定端口 ip这个内网IP问题自然迎刃而解
#-p:Seata TC Server 监听的端口;
#-h:指定ip
#-n:Server node,在多个 TC Server 时,需区分各自节点,用于生成不同区间的 transactionId 事务编号,以免冲突;
./seata-server.sh -p 18091 -h 47.110.237.194 -n 1
报错问题迎刃而解:
2021-01-21 00:22:07.348 INFO 1924 --- [ main] i.s.core.rpc.netty.NettyPoolableFactory : NettyPool create channel to transactionRole:RMROLE,address:47.110.237.194:18091,msg:< RegisterRMRequest{resourceIds='jdbc:mysql://47.110.237.194:3306/accountdb', applicationId='29-seata-distributed-transaction', transactionServiceGroup='29-seata-distributed-transaction-group'} >
2021-01-21 00:22:10.282 INFO 1924 --- [ main] i.s.c.rpc.netty.RmNettyRemotingClient : register RM success. client version:1.3.0, server version:1.3.0,channel:[id: 0x9e6362b8, L:/192.168.124.8:57806 - R:/47.110.237.194:18091]
2021-01-21 00:22:10.294 INFO 1924 --- [ main] i.s.core.rpc.netty.NettyPoolableFactory : register success, cost 186 ms, version:1.3.0,role:RMROLE,channel:[id: 0x9e6362b8, L:/192.168.124.8:57806 - R:/47.110.237.194:18091]
2021-01-21 00:22:10.295 INFO 1924 --- [ main] i.s.c.r.netty.NettyClientChannelManager : will connect to 47.110.237.194:28091
2021-01-21 00:22:10.295 INFO 1924 --- [ main] i.s.c.rpc.netty.RmNettyRemotingClient : RM will register :jdbc:mysql://47.110.237.194:3306/accountdb
2021-01-21 00:22:10.295 INFO 1924 --- [ main] i.s.core.rpc.netty.NettyPoolableFactory : NettyPool create channel to transactionRole:RMROLE,address:47.110.237.194:28091,msg:< RegisterRMRequest{resourceIds='jdbc:mysql://47.110.237.194:3306/accountdb', applicationId='29-seata-distributed-transaction', transactionServiceGroup='29-seata-distributed-transaction-group'} >
2021-01-21 00:22:10.510 INFO 1924 --- [ main] i.s.c.rpc.netty.RmNettyRemotingClient : register RM success. client version:1.3.0, server version:1.3.0,channel:[id: 0x2f24d985, L:/192.168.124.8:57807 - R:/47.110.237.194:28091]
2021-01-21 00:22:10.510 INFO 1924 --- [ main] i.s.core.rpc.netty.NettyPoolableFactory : register success, cost 173 ms, version:1.3.0,role:RMROLE,channel:[id: 0x2f24d985, L:/192.168.124.8:57807 - R:/47.110.237.194:28091]