原因:org.springframework.cloud.gateway.filter.LoadBalancerClientFilter中的方法 choose 调用了URI.getHost()的方法
测试一下是否带下划线就会产生null:
import java.net.URI;
public class Test {
public static void main(String[] args) {
String r = "http://user:password@foo_bar:8761/eureka/apps";
URI uri = URI.create(r);
System.out.println(uri.getHost());
// prints null
}
}
总结:
使用gateway时服务的名字(application.name)不能加下划线,不然会找不到服务实例
nacos会报 未知主机异常
eureka会报null 节点异常