服务器端负载均衡和客户端负载均衡的区别
1.负载均衡
最近在学spring cloud ,学到了一个新概念 客户端负载均衡(Ribbon)。对于负载均衡,百度给出的答案:
负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
参考博客: https://www.cnblogs.com/gucb/p/11237765.html
直白点说就是,一个服务器同时不能处理太多的请求,所以把服务部署在多台服务器上,在用户发出请求时,根据一定的策略,选择适合的服务器地址进行调用。
提到负载均衡,我们直接想到的就是Nginx,他是一个独立的进程单元,也就是一个单独的服务,通过负载均衡策略将请求进行分发。
2.客户端负载均衡
《深入理解 Spring Cloud 与微服务构建(第2版)》 (这本书真的很好,我觉得没一句废话,值得一看)书中给的答案如下
将负载均衡的逻辑以代码的形式封装到服务消费者的客户端上,服务消费者客户端维护了一份服务提供者的信息列表,有了信息列表,通过负载均衡将请求分摊给多个消费者,从而达到负载均衡的目的。
3.使用场景
小朋友,你是否有很多问号?我们既有服务端负载均衡又有客户端负载均衡,那到底应该用哪个,用哪个好,还是结合起来使用呢?我是很费解的,在百度上无论怎么查,无非就是重复两句话,nginx 是服务端, ribbon 是客户端。以及实现原理。