一、负载均衡
Nginx 和 Ribbon 都能做负载均衡,区别在哪儿?
- Nginx 负责服务器负载均衡
- Ribbon 负责本地负载均衡
Nginx 是服务器负载均衡,客户端所有请求都会交给 Nginx,然后由 Nginx 实现转发请求。即负载均衡是由服务端实现的
Ribbon 是本地负载均衡,在调用微服务接口的时候,会在注册中心上获取注册信息服务列表之后缓存到 JVM 本地,从而在本地实现 RPC 远程服务调用技术
二、一句话 Ribbon
所谓 Ribbon,就是负载均衡 + RestTemplate 调用
RestTemplate: RestTemplate是Spring提供的用于访问REST服务的模板类,它简化了在Java应用程序中进行HTTP请求的操作。在Spring框架中,RestTemplate被广泛用于与RESTful服务进行通信,是一种方便、灵活的 HTTP客户端工具。
三、实现过程
- Ribbon 从注册中心查询可用服务列表,缓存到本地 JVM
- Ribbon 根据设置的负载均衡算法,进行远程调用(RestTemplate)