1. Ribbon实现客户端负载均衡
配置RestTemplate类,并在该bean上添加@LoadBalanced注解,此时SpringCloud会在RestTemplate上封装一层,改为先从Eureka注册中心拉取服务注册信息,再进行分发
2. Ribbon与Nginx的区别
Ribbon:
实现客户端负载均衡,在分发请求前,需要先从Eureka服务端获取服务注册信息,缓存到本地,在本地使用RPC远程调用或者基于Restful风格的HTTP调用。负载均衡由客户端实现。
Nginx:
实现服务端负载均衡,服务节点信息已经提前写在了配置文件中,无需获取信息,请求统一由nginx进行转发。负载均衡由服务端实现。
场景:
Ribbon:Dubbo,SpringCloud
Nginx:Tomcat,Jetty
3. Ribbon负载均衡策略
负载均衡策略父接口为IRule,具体策略类为该接口的实现类
常用策略:
- 轮询
RoundRobinRule - 随机
RandomRule - 重试
RetryRule