作者:禅与计算机程序设计艺术
1.简介
什么是Ribbon?
Ribbon是一个基于Netflix公司开源的客户端负载均衡器,它是一个独立的模块,也可以集成在Spring Cloud项目中使用。Ribbon可以做到:
- Client-side load balancing:Ribbon提供了客户端的负载均衡,即在使用Ribbon进行服务调用时,由Ribbon根据相应策略(如Round Robin、Random)将请求分布到不同的服务实例上;
- Failover:当某台机器宕机或网络不通的时候,Ribbon会自动切换至其他可用的服务实例;
- Retry:由于服务调用过程中可能存在各种异常情况,比如超时、连接失败等,Ribbon提供相应的重试机制,可以自动对某些特定的异常状况进行重试;
- Caching:Ribbon支持缓存,在同一个JVM进程内可以缓存已经获取到的服务信息,避免多次访问服务注册中心;
本文主要介绍如何使用Ribbon作为客户端负载均衡组件来实现微服务的负载均衡,并讨论其工作原理。
基本用法及原理
引入依赖
在使用Ribbon之前,需要先在工程的pom文件中引入Ribbon相关的依赖:
<dependency>
&