seata注册到nacos服务无法访问问题

今天遇到了个奇葩问题,在阿里云服务器上启动了seata并且注册到nacos上面,本地服务却死活访问不了,报错如下:

2022-06-08 16:55:32 [NettyClientSelector_TMROLE_1_1] INFO  i.seata.core.rpc.netty.AbstractNettyRemotingClient - ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x3f7e3ff6]) will closed 
2022-06-08 16:55:32 [timeoutChecker_1_1] ERROR io.seata.core.rpc.netty.NettyClientChannelManager - 0304 register RM failed. 
io.seata.common.exception.FrameworkException: can not connect to services-server.
	at io.seata.core.rpc.netty.NettyClientBootstrap.getNewChannel(NettyClientBootstrap.java:182)
	at io.seata.core.rpc.netty.NettyPoolableFactory.makeObject(NettyPoolableFactory.java:58)
	at io.seata.core.rpc.netty.NettyPoolableFactory.makeObject(NettyPoolableFactory.java:34)
	at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:1220)
	at io.seata.core.rpc.netty.NettyClientChannelManager.doConnect(NettyClientChannelManager.java:221)
	at io.seata.core.rpc.netty.NettyClientChannelManager.acquireChannel(NettyClientChannelManager.java:107)
	at io.seata.core.rpc.netty.NettyClientChannelManager.reconnect(NettyClientChannelManager.java:189)
	at io.seata.core.rpc.netty.AbstractNettyRemotingClient$1.run(AbstractNettyRemotingClient.java:114)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.lang.Thread.run(Thread.java:750)
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)
	... 16 common frames omitted
2022-06-08 16:55:32 [timeoutChecker_1_1] ERROR io.seata.core.rpc.netty.NettyClientChannelManager - 0101 can not connect to xxx.xx.xx.xx: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.

到网上找了一大堆,都是千篇一律说配置问题,但仔细检查配置并无差错。其实看到nacos上面seata服务的这个ip,我就觉得不太对劲(因工作原因,马赛克掉了ip地址),并不是阿里云的公网ip。
在这里插入图片描述

后来仔细查看了nacos注册ip的资料,才发现问题所在。就是nacos上的seata服务ip是服务器内网ip而非公网ip导致本地服务无法访问的。

在Windows下,启动seata时如果没有指定ip,就会导致服务注册使用内网ip,通过指定ip为公网ip
即可:

seata-server.bat -h 公网ip

在这里插入图片描述

参考链接:https://blog.csdn.net/wangw_2007/article/details/113573308

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值