家里路由器一坏,全家人上网都抓瞎。公司服务器要是也这样,损失可就大了。为了解决单点故障,很多系统会用到负载均衡的主备模式,简单说就是一个主设备干活,一个备用设备盯着,主的挂了,备的立马顶上。
主备模式是啥?
不像常见的负载均衡把请求平均分给多个服务器,主备模式里,平时只有“主”在工作,“备”在旁边待命。一旦主服务器出问题,比如宕机或网络断了,备用服务器马上接手,用户几乎感觉不到中断。这种模式常见于对稳定性要求高的场景,比如银行交易系统、企业官网后台。
怎么设置主备模式?
以常用的 Nginx 配合 Keepalived 为例,Nginx 做反向代理,Keepalived 负责监控主备状态。你需要在两台服务器上都安装 Keepalived,并配置角色。
主服务器的配置文件 /etc/keepalived/keepalived.conf 大概长这样:
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100
}
}
备用服务器上,除了 state 改成 BACKUP,priority 设得低一点,比如 90,其他基本一致。
当主服务器正常时,虚拟 IP(192.168.1.100)绑定在它上面。一旦主挂了,Keepalived 通过心跳检测发现异常,备机就会自动接管这个 IP,流量也就自动切过去了。
实际使用中的小细节
别以为配完就高枕无忧。有次我们公司测试主备切换,结果发现应用启动太慢,备机虽然拿到了 IP,但服务还没起来,导致几分钟内无法访问。后来加了健康检查脚本,确认服务真正可用才宣布上线,问题才解决。
还有,主备之间最好用专用线路通信,避免公网波动误判故障。就像两口子打电话确认情况,总比靠邻居传话靠谱。
主备模式不是万能的,它牺牲了一部分资源(备机闲着),换来的是更高的可靠性。要不要用,得看你家“网络日子”能不能经得起折腾。