Ribbon是Netflix发布的云中间层服务开源项目,其主要功能是提供客户端实现负载均衡算法。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,Ribbon是一个客户端负载均衡器,我们可以在配置文件中Load Balancer后面的所有机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器,我们也很容易使用Ribbon实现自定义的负载均衡算法。

SpringCloud之Ribbon入门案例

① 首先引入Ribbon依赖,Ribbon的使用依赖Eureka:

  org.springframework.cloud spring-cloud-starter-eureka   org.springframework.cloud spring-cloud-starter-ribbon 

主程序:

@SpringBootApplication@EnableEurekaClient//在启动该微服务的时候就能去加载我们的自定义Ribbon配置类,从而使配置生效@RibbonClient(name="MICROSERVICECLOUD-DEPT")public class DeptConsumer80_App{public static void main(String[] args){SpringApplication.run(DeptConsumer80_App.class, args);}}

使用添加@LoadBalanced注解后的RestTemplate调用服务提供者的接口时,可以使用虚拟IP替代真实IP地址。所谓的虚拟IP就是服务提供者在application.properties或yml文件中配置的spring.application.name属性的值。示例如下:

@RestControllerpublic class DeptController_Consumer{private static final String REST_URL_PREFIX = "http://MICROSERVICECLOUD-DEPT"; //微服务的虚拟id @Autowiredprivate RestTemplate restTemplate; @RequestMapping(value = "/consumer/dept/add")public boolean add(Dept dept){return restTemplate.postForObject(REST_URL_PREFIX + "/dept/add", dept, Boolean.class);}}

Ribbon组件IRule

默认的是RoundBobinRule(轮询)

Ribbon详解与实例_ribbon 手动 更新本地实例-CSDN博客原文链接