发布网友 发布时间:2022-10-12 18:55
共1个回答
热心网友 时间:2023-10-24 02:10
我们知道负载均衡有硬件负载均衡与软件的负载均衡方案
硬件负载均衡:比如 F5、深信服、Array 等; 软件负载均衡:比如 Nginx、LVS、HAProxy 等; 硬件负载均衡或是软件负载均衡,他们都会维护一个可用的服务端清单,通过心跳检测来剔除故障的服务端节点以保证清单中都是可以正常访问的服务端节点。当客户端发送请求到负载均衡设备的时候,该设备按某种算法(比如轮询、权重、 最小连接数等)从维护的可用服务端清单中取出一台服务端的地址,然后进行转发。
Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,是一个基于HTTP和TCP的客户端负载均衡工具。
Ribbon与Nginx的区别
Nginx是基于服务端的负载均衡,客户端所有请求统一交给 nginx,由 nginx 进行实现负载均衡请求转发,Nginx保持服务清单的同时,也负责负载均衡算法
Ribbon是从 eureka 注册中心服务器端上获取服务注册信息列表,缓存到本地,然后在本地实现轮询负载均衡策略,Ribbon不负责出来服务清单,
Ribbon提供七种负载均衡策略
由于Spring Cloud Ribbon的封装, 我们在微服务架构中使用客户端负载均衡调用非常简单, 只需要如下两步:
在SpringCloud中 Feign中集成了Ribbon,会自动使用负载均衡。
fallback是自定义异常熔断类,声明后的接口出现异常时,会自动执行服务降级