RPC 之负载均衡
为什么需要负载均衡
假设有一次流量高峰,突然发现线上服务的可用率降低了,经过排查发现是有几台机器比较旧了,当流量达到高峰时,这几台机器由于负载太高,就扛不住压力,那怎么解决这种问题呢?
首先我们可能会想到,在治理平台上调低这几台机器的权重,这样的话,流量自然就减少了。
但是这样会导致服务可用率降低,业务请求受到影响,那 RPC 框架有没有什么智能负载的机制?能及时地控制服务节点接收到的访问量?
什么是负载均衡
当一个服务节点无法支撑现有的访问量时,会部署多个节点,组成一个集群,然后通过负载均衡,将请求分发给这个集群下的每个服务节点,从而达到多个服务节点共同分担请求的压力的目的。
负载均衡只要分为软负载和硬负载,软负载就是在一台或多台服务器上安装负载均衡的软件,如LVS,Nginx等。硬负载就是通过硬件设备来实现的负载均衡,如 F5 服务器等。负载均衡的主要算法有随机法,轮询法,最小连接法等。
RPC 框架中的负载均衡
那 RPC 框架中的负载均衡和上面的负载均衡是一样的吗?为什么不添加负载均衡设备或者 TCP/IP 四层代理,域名绑定负载均衡设备的 IP 或者四层代理 IP 的方式。
因为可能会遇到下面的这样几个问题:
- 搭建负载均衡设备或 T