上一期我们说到分布式的负载均衡策略,主要讲的是应用级的负载均衡,在微服务集群中,服务节点之间如何调用。像 Dubbo 自带了负载均衡器,采用的是外在组件 Ribbon。这主要是应用级的负载均衡。
其实除了应用内部,还有很多应用负载均衡的场景同样重要。本期就给大家介绍流量的入口网关级的负载均衡。
先说说微服务内部的网关层,比如 Spring Cloud 引入了 Gateway、Zuul 作为微服务的网关,可以起到鉴权、限流、熔断的作用,当然更重要的还是当路由来用。比如获取用户信息,请求的是用户中心,网关会把相应的请求分配给用户中心集群,用户中心集群处理获取用户信息的请求,然后按照默认策略,比如轮询策略来进行负载均衡。
在微服务的外部,同样也有负载均衡。比如常见的 Nginx,其常用功能是做反向代理,代理了背后一堆的服务器,由 Nginx 统一对外提供服务,请求先转发到 Nginx 上面,Nginx 再根据负载均衡策略进行请求转发,策略有随机、轮询、加权等,性能强悍,几乎没有公司不用 Nginx。
但现在也有很多其他的负载均衡方式,比如 LVS 跟 Nginx 其实一样,都属于应用外围的负载均衡,原理差不多,都是做反向代理然后提供负载均衡服务。LVS 支持高伸缩性的集群架构,所以云服务用得比较多。还可以搭配 F5 硬件服务的均衡器,性能不错,但价格不便宜,比较适合中大型互联网公司。不差钱的公司也可以考虑。
好了,本期的内容就是这些,如果您对本期内容有任何疑问,欢迎大家在评论区给我留言,谢谢大家!