什么是负载均衡
为了服务的高可用性,服务一般以集群的形式存在。
集群:存在多个节点,但节点间的功能都是相同的。
那么如何在集群中维持高可用,这就是“负载均衡”所做的事情。
而负载均衡又分为软件负载均衡和硬件负载均衡。软件类的负载均衡又可分为客户端负载均衡(例如:Ribbon)和服务端负载均衡(例如:Nginx)。
客户端负载均衡
客户端负载均衡指的是将集群中提供服务的地址缓存到客户端本地,客户端通过负载均衡算法获得访问地址,然后请求该地址。
例如:
Spring Cloud Netflix利用Eureka作为服务注册中心,Eureka会收集服务提供者的注册信息(包括访问地址),客户端使用通过Eureka将服务提供者的信息缓存到本地,然后使用Ribbon负载均衡算法获得本地服务的访问地址。
服务端负载均衡算法
服务端负载均衡算法指的是客户端访问服务端的代理服务器(Nginx),由该代理服务器通过负载均衡算法请求到某台服务器获取结果(不会返回请求地址给客户端)。