遇到的错误:
今天在使用seata+eureka时。启动项目后报错如下:
说是不能连接到seata的服务端,我的seata server是部署在linux服务器上。然后我仔细检查了一下seata client端配置的一些conf配置文件里面的ip地址信息都没有问题,ip地址就是我linux服务器的ip地址(问题就出在这里)。然后我看了一下eureka中心如下:
然后大概知道了问题原因:我的linux服务器的ip为196.128开头(公网),但seata server注册到eureka时却已172.17开头(内网)的这个IP注册进去的。所以原因就是Seata 使用db数据库注册到Eureka集群的服务使用了内网IP最后导致项目不能连接到Seata 。
解决办法:
在启动seata的时候指定对应的公网IP就行了。
#-p:指定端口号; -m:使用db数据库注册到对应的注册中心; -h:指定ip地址
[root@A bin] ./seata-server.sh -p 端口号 -m db -h 公网IP
再次启动服务,发现问题解决了。