No instances available for localhost。spring cloud消费者restTemplate+ribbon报错
最近准备把之前的分布式的项目由dubbo变为springcloud,今天创建一个spring cloud小demon的时候,启动消费者遇到一个问题。这里记录下来。
我这里customer是restTemplate+ribbon的测试案列,调用的时候出现了下图错误:
原因:
这里出错。是因为:
restTemplate加了@LoadBalanced的注解,表示需要做负载匀衡,这个注解在使用的时候会走类RibbonLoadBalancerClient,而做负载均衡的话就需要走注册表,就不能写域名直接调用,直接调用不经过注册中心那服务列表。所以,这里只能是写我们注册的服务名。也就是我们注册在eureka上的服务名。
改为上面写有url图片中的被注释的部分。
在这里,还有个需要特别注意的,我们在定义:application:
name:的时候命名一定不要又下划线,不要有下划线,不要有下划线。重要的事情说三遍。如下图。
这样会报错:
Request URI does not contain a valid hostname: http://EUREKA_CLIENT_PROVIDER