关于spring cloud ribbon

baichixiaozi 2018-09-19 01:49:54
一直不太理解,ribbon是做为负载均衡了,对外统一暴露接口,使用RestTemplate访问微服务层,是不是意味着ribbon里需要把所有的对外接口都要遍历一遍?那如果后期各个微服务接口名发生变化了,同时还需要维护ribbon吗?这么是不是很复杂,有没有什么黑科技
...全文
62 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
icarusliu81 2018-09-19
  • 打赏
  • 举报
回复
不管是否是微服务,调用其他系统的接口客户端代码是必不可少的。你可以使用feign,调用起来更加便捷
baichixiaozi 2018-09-19
  • 打赏
  • 举报
回复
嗯,也可以理解为一回事,RestTemplate 注解@LoadBalanced,本身的调用就带有复杂均衡的功能,其实主要是纠结我微服务写了一遍接口,在这里还要再重复一遍,有时候感觉是为了微服务而微服务,反而把事情搞得很复杂
arg 2018-09-19
  • 打赏
  • 举报
回复
ribbon只是负载均衡,说白了就是转发请求到 各个微服务的web服务器上。和微服务的名字没有任何关系。。
icarusliu81 2018-09-19
  • 打赏
  • 举报
回复
你这是请求接口,跟ribbon的负载均衡是两码事。如果原接口改了,你这个调用方修改是必须的事情。
baichixiaozi 2018-09-19
  • 打赏
  • 举报
回复
@Service
public class HelloService {

@Autowired
RestTemplate restTemplate;

public String helloService(String name) {
return restTemplate.getForObject("http://service-user/hello?name="+name, String.class);
}
}

通过这个service来访问我下层的微服务,不是每个微服务的接口都需要在ribbon里写一遍?
icarusliu81 2018-09-19
  • 打赏
  • 举报
回复
他做负载均衡跟接口毛线关系。他是对服务器来的,这次请求这个服务器的接口,下次就请求另外一台服务器的了。具体请求哪个接口根本不管。那是转发到具体的服务器上去之后服务器的事情。因此不存在说接口名称变化了ribbon要维护的问题。但原接口变动了,调用方做相应的改动是没法避免的事情

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧