目录
什么是负载均衡
负载均衡(Load Balance,简称 LB) , 是高并发, 高可用系统必不可少的关键组件。
当服务流量增大时,通常会采用增加机器的方式进行扩容,负载均衡就是用来在多个机器或者其他资源中,,按照⼀定的规则合理分配负载。
负载均衡分为服务端负载均衡和客户端负载均衡。
服务端负载均衡
在服务端进行负载均衡的算法分配。
比较有名的服务端负载均衡器是Nginx。请求先到达Nginx负载均衡器,,然后通过负载均衡算法,在多个服务器之间选择⼀个进行访问。
如图:
客户端负载均衡
把负载均衡的功能以库的方式集成到客户端,而不再是由一台指定的负载均衡设备集中提供。
比如Spring Cloud的Ribbon,请求发送到客户端,客户端从注册中心(比如Eureka)获取服务列表在发送请求前通过负载均衡算法选择⼀个服务器,然后进行访问。
Ribbon是Spring Cloud早期的默认实现,由于不维护了,所以最新版本的Spring Cloud负载均衡集成的是Spring Cloud LoadBalancer(Spring Cloud官方维护)。
如图:
客户端负载均衡和服务端负载均衡最大的区别在于服务清单所存储的位置。
Spring Cloud LoadBalancer快速上手
(1)给 RestTemplate 这个Bean添加 @LoadBalanced 注解就可以。
如代码:
@C