Nginx和Ribbon的区别
1. Nginx服务器端负载均衡:
1、Nginx是客户端所有请求统一交给nginx,由nginx进行实现负载均衡请求转发,属于服务器端负载均衡。即请求有nginx服务器端进行转发。
3、Nginx是服务端的负载均衡,Ribbon是客户端的负载均衡
4、Nginx是集中式的负载均衡,Ribbon是消费者内部线程实现的负载均衡
2. Ribbon客户端负载均衡:
1、Ribbon是从eureka注册中心服务器端上获取服务注册信息列表,缓存到本地,让后在本地实现轮训负载均衡策略。即在客户端实现负载均衡。
2、. 两者应用场景的区别:
Nginx适合于服务器端实现负载均衡 比如Tomcat ,Ribbon适合与在微服务中RPC远程调用实现本地服务负载均衡,比如Dubbo、SpringCloud中都是采用本地负载均衡。
一、为什么说Nginx是服务端的负载均衡,Ribbon是客户端的负载均衡呢?
1.用户发送请求到nginx,nginx是服务端。
2.Ribbon是微服务之间通信的负载均衡,订单服务调用商品服务时,订单服务就是客户端,商品服务就是服务端。
二、为什么说Nginx是集中式的负载均衡,Ribbon是消费者内部线程实现的负载均衡呢?
1.nginx是所有请求都会通过nginx进行分发,所以是集中式的负载均衡。
2.订单服务在调用商品服务时,在订单服务内部通过Ribbon的负载均衡算法选出商品服务后进行调用,所以是消费者内部线程实现的负载均衡。