一、Ribbon与Nginx的区别
1、Nginx是服务器端负载均衡。
Nginx是客户端所有请求统一交给Nginx,由Nginx进行实现负载均衡请求转发,属于服务器端负载均衡,即请求由 Nginx服务器端进行转发。
2、Ribbon是客户端负载均衡。
Ribbon是Eureka注册中心服务器端上获取服务注册信息服务列表,缓存到JVM本地,然后在本地实现rpc远程调用 技术进行调用,轮询负载均衡策略,即在客户端实现负载均衡。
二、应用场景
1、Nginx适合于服务器端实现负载均衡,比如Tomcat,Jetty;
2、Ribbon适合于微服务中RPC远程调用实现本地负载均衡,
比如Dubbo、SpringCloud中都采用本地负载均衡。Ribbon是SpringCloud客户端负载均衡器。
3、本地客户端负载均衡:
本地从Eureka上获取对应的注册信息列表,获取到信息列表之后,然后本地实现负载均衡,是在客户端实现的。
4、负载均衡的算法:接口总请求数%服务器数量 得到实际下标服务器位置。