Ribbon 与 Nginx 的区别?
Ribbon是客户端的负载均衡工具,而客户端负载均衡和服务端负载均衡最大的区别在于
服务清单所存储的位置不同,在客户端负载均衡中,所有客户端节点下的服务端清单,需要
自己从服务注册中心上获取,比如Eureka服务注册中心。
同服务端负载均衡的架构类似,在客户端负载均衡中也需要心跳去维护服务端清单的健康
性,只是这个步骤需要与服务注册中心配合完成。在Spring Cloud中,由于Spring Cloud对
Ribbon做了二次封装,所以默认会创建针对 Ribbon的自动化整合配置;
在Spring Cloud中,Ribbon主要与RestTemplate对象配合起来使用,Ribbon会自动化
配置RestTemplate对象,通过@LoadBalanced开启RestTemplate对象调用时的负载均衡。
总结
客户端负载均衡器
在SpringCloud中Ribbon负载均衡客户端,会从eureka注册中心服务器端上获取服务注册信息列表,缓存到本地。让后在本地实现轮训负载均衡策略。
1.服务器端负载均衡Nginx
nginx是客户端所有请求统一交给nginx,由nginx进行实现负载均衡请求转发,属于服务器端负载均衡。
既请求有nginx服务器端进行转发。
2.客户端负载均衡Ribbon
Ribbon是从eureka注册中心服务器端上获取服务注册信息列表,缓存到本地,让后在本地实现轮训负载均衡策略。
既在客户端实现负载均衡。
应用场景的区别:
Nginx适合于服务器端实现负载均衡 比如Tomcat ,Ribbon适合与在微服务中RPC远程调用实现本地服务负载均衡,比如Dubbo、SpringCloud中都是采用本地负载均衡。