一般的小公司,单体项目为了避免单体故障,可以直接购买阿里云的slb服务,实现负载均衡高可用.
其背后原理其实新增了一套负载均衡服务器,然后分发到后端各个服务器上;(四层协议分发使用lvs,七层使用自己封装的nginx);
但是此时负载均衡如果不设计高可用,单点故障就依然存在,所以用上了keepalived,使用漂移虚拟IP的方式,来避免;(其中相同的vip在不同主机中是主从的存在,使用权重值来划分)
网上大多是两种方案:主从(其中一台机器歇着)和主主(同时可以使用);
主从方式:
A和B机器使用相同vip,当某个机器出现故障vip漂移到另外一个机器;
主主方式:
提供两个vip;
A中分别使用vip1为主,vip2为从,此时访问vip1到A
B中分别使用vip2为主,vip1为从,此时访问vip2到B
此时可以使用配置dns的方式负载访问两个vip;(同域名解析多个地址)
此时如果其中一个机器故障,则其中一个主的vip则漂移到另外机器,该机器两个vip同时为主,则访问两个vip都访问到该机器;
扩展:
使用dns配置多解析地址轮询方式,达到扩容;