电脑基础 · 2023年3月12日

seata注册nacos报错:nettyServer init error:ErrCode:400, ErrMsg:failed to req API:/api//nacos/v1/ns/instan

错误信息如下:
nettyServer init error:ErrCode:400, ErrMsg:failed to req API:/api//nacos/v1/ns/instance after all servers([IP 端口]) tried:

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Thu Mar 31 19:01:17 CST 2022
There was an unexpected error (type=Bad Request, status=400).
receive invalid redirect request from peer ip

下图为错误信息截图

seata注册nacos报错:nettyServer init error:ErrCode:400, ErrMsg:failed to req API:/api//nacos/v1/ns/instan

报错场景:
使用VMware虚拟机,系统是centos7,seata 版本为 1.3.0 ,nacos 为 1.4.1 ,nacos 为集群配置,且三台nacos 服务配置双网卡(为了设置静态ip,一个访问网络,一个负责交互)。使用nginx ,负载均衡。

猜测的原因:

  1. nginx 配置文件中配置的是nacos的 静态ip,但是seata 注册的时候经过nginx 重定向就会有报错:receive invalid redirect request from peer。
  2. 在排查问题的时候发现,nacos 的配置文件cluster.conf 中 多了一个ip,且是动态ip, 三台服务都是如此。nacos 节点列表中为四个节点,且第四个每次请求都不一样。
    解决办法
    将双网卡配置改成单网卡配置,固定ip不使用双网卡 。
    后记:
    这种环境配置出问题,可能有各种各样的原因,你们可能和我的不太一样,看实际情况,我这个遇见的核心问题就是,一台虚拟机有两个ip , 使用nginx 负载,seata 访问不到真是的ip 。