SpringCloud--问题(一)分布式服务调用失败

描述:gateway路由访问部署在 其他主机 的服务失败

一、问题分析

1、gateway路由访问报错如下

image

2、查看eureka注册中心 master-service 服务注册了两个

image

可以看出,gateway路由分发到了 windows10.microdone.cn 上。在eureka注册中心找到该服务确实已被注册,但是从gateway报错信息可以看到 java.net.UnknownHostException: windows10.microdone.cn:Name or service not know,说明gateway无法识别 该地址,从而路由失败。

默认情况下,eureka使用 机器的主机名 进行服务注册,可以看到注册表中zbp1gbi4yst5no4u1rapxzi windows10.microdone.cn两个服务使用的都是 机器的主机名,而通过 机器的主机名 gateway无法正常路由到对应的服务器

二、解决方案

使用IP进行服务注册,这样gateway就能通过ip成功找到对应的服务
服务端添加如下配置,让服务使用IP进行服务注册

eureka:
  instance:
    prefer-ip-address: true

问题解决

posted @ 2021-04-28 17:58  残忍的幻象饭团  阅读(718)  评论(0)    收藏  举报