概述
在项目了配置了服务名 gateway网关也配置了 完全没有问题 同时nacos这边也能发现服务 但就是访问的时候状态码500 报错java.lang.IllegalStateException: Invalid host: lb://exam_farmer_service翻译的一下大概是无效的主机 可是明明服务名对 为什么说是无效的???
原因
我们可以去可以一下源码 找到RouteToRequestUrlFilter中的方法filter可以看到routeUri.getHost()为空了。
routeUri.getHost()这个属性是根据URI进行解析的。所以重点排查URI
然后根据断点发现URI前期进行解析lb://anfang_security_service的时候,发生了异常
这就说明URL不支持下划线的方式
解决方案
命名服务的时候不要带下划线 把下划线去掉