最近在部署服务的时候,页面发起的请求总是会经常报错,由网关日志发现转发的前端请求转发到了不存在的一个服务项上。
检查后得知,当服务向eureka注册的时候,由于配置文件指定的端口和启动服务jar包的shell脚本指定端口不一致,导致在eureka上注册了两个不同端口的同名服务,但是实际可用的只有一个,另一个由于EUREKA的HA架构特性,会一直存在于注册中心中。
这种导致的结果体现为多次通过服务名去找对应的服务的时候,总是会在可用的和不可用的两个服务之间轮询,导致前端请求失败。所以当前端发起请求结果导致报错{"timestamp":“2018-09-07 11:45:38”,“status”:500,“error”:“Internal Server Error” “message”:”GENERAL”}的时候,也可以去检查一下,注册中心的服务是否都可用。