前言
假设你有一个服务A,要调用服务B(有三个实例,B1、B2、B3),如何只调用其中的B1和B2,屏蔽掉B3?实际上解决方法大致分为两类。
一种是外部路由,就是通过网关等组件,在请求链路上进行路由选择,即A -> 网关 -> B。
另一种是内部路由,即A服务借助一些第三方库,直接决定要访问的B服务实例,即A -> B。
本文重点介绍内部路由的一种实现方式~
最近整理的Java架构学习视频和大厂项目底层知识点,需要的同学欢迎私信我【资料】发给你~一起学习进步!
Ribbon简介
一句话来说,Spring Cloud Ribbon是Netflix Ribbon实现的客户端负载均衡器。一张图能解释它的作用,从一个服务的多个实例中,最终选择一个实例用于消费。
对于没有使用过Spring Cloud的同学来说可能有点陌生,如果你写过Spring Boot应用,要调用的远程服务仅通过IP加端口的形式暴露,远程调用的姿势可能是这样的。
RestTemplate restTemplate = new RestTemplate();
String url = "http://10.10.10.10:8080";
String result = restTemplate.getForObject(url, String.class);
当被消费的服