nginx是典型的负载均衡组件,还有haproxy,这些是软件负载均衡。另一种是硬件负载均衡,像F5等。在微服务开发过程中,还会有像ribbo,loadbalance等等。
从大的方面,可以把负载均衡分两类:
-
服务端负载均衡
-
客户端负载均衡
在网上看到这么总结的:
-
客户端负载均衡,服务消费者从注册中心拿到服务提供者集群,自己决定使用何种算法找到目标服务,这个过程就是客户端负载均衡,即主动权掌握在自己手里
-
服务端负载均衡,就是消费者把请求交给服务端,由服务端来负责找到目标服务提供者,即主动权掌握在被人手里。
-
还有一种分类方式:集中式LB和进程内LB,都是一个意思。
一般通过域名或者具体的ip:port 的方式调用的,都是走的服务端负载均衡。
通过 serviceName 的方式调用,走的是客户端负载均衡,通过serviceName 到注册中心获取到具体的服务的ip,然后再调用。