spring cloud ribbon 服务名无法转换成IP
服务已经注册,如图:
服务调用代码如下:
启动类:
@SpringCloudApplication
public class RibbonConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(RibbonConsumerApplication.class, args);
}
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
RestTemplate restTemplate = new RestTemplate();
return restTemplate;
}
}
// Controller类
@RestController
public class ConsumerController {
@Autowired
RestTemplate restTemplate;
@RequestMapping(value = "/ribbon-consumer", method = RequestMethod.GET)
public String helloController() {
String url = "http://HELLOSERVICE/hello";
ResponseEntity<String> forEntity = restTemplate.getForEntity(url, String.class);
return forEntity.getBody();
}
public String error() {
return "error";
}
}
配置文件application.properties
spring.application.name=ribbon-consumer
server.port=9111
eureka.client.service-url.defaultZone=http://localhost:1111/eureka
但是总是报错:
java.net.UnknownHostException: HELLOSERVICE
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
有人会解决这个问题吗?
我也遇到相似的情况,但不确定是否和上面的是一样的,具体原因未知。
使用的spring-boot版本是2.1.7-release,降级到2.0.7-release解决了。
2.1.7-release:
eureka注册:
相关配置也没什么问题,但是consumer获取不到provider的server list
debug发现请求的地址果然是http://spring-cloud-provider/...,没有解析
2.0.7-release:
eureka注册:
相关日志:
调用成功,拿到数据了,current list of Servers=[172.17.53.148:8000]也是正常的。