搞懂双机热备到底是怎么回事
最近老有刚入行的小兄弟问我,说在项目方案里总能看到“双”这个字,什么双机、双活、双回路,听得脑袋都大了。这玩意儿没那么玄乎,说白了就是给自己买份保险,防止关键时刻掉链子。
我头一回正儿八经接触“双机热备”,还是在七八年前。那时候我在一家搞物流的小公司带队,服务器就一台破电脑。结果有次半夜跳闸,硬盘直接烧了,全公司的订单数据卡在那儿,老板急得想顺着网线过来抽我。打那以后,我就下定决心,不管多穷,必须得整成“双机”。
从折腾第一对服务器开始
我当时先是跟老板软磨硬泡,又要了一台配置差不多的服务器。我的思路很简单:要是主机器趴下了,备用的得立马顶上去。我先是在两台机器上都装了同样的数据库环境,然后开始捣鼓数据同步。
- 第一步:先把两台机器的网接通,设成同一个局域网段。
- 第二步:搞了个叫心跳检测的小玩意。就是让两台机器互相掐架,不,是互相打招呼。备用机每隔一秒问一下主机:“哥们,你还活着吗?”
- 第三步:只要主机没动静了,备用机就强行接管那个对外服务的ip地址。
看着挺顺,结果上手就踩坑。我发现主机还没断气,只是网络卡了一下,备用机就急吼吼地跳出来抢生意。结果两台机器抢着往硬盘里写数据,文件全坏了,这也就是老鸟们常说的“脑裂”。

死磕到底的进阶之路
为了解决这个破问题,我连着通宵了三个晚上。我翻遍了各种土办法,加了一根专门的串口线连着两台机器,这就是纯物理层面的“互相监督”。要是网络断了,但串口线还通着,备用机就老老实实待着。只有两边都没反应了,它才敢接班。
后来公司业务大了,光靠这种一主一备的“冷热”模式不够用了。因为主机压力太重,备用机在那儿吃干饭太浪费。于是我又研究起了“双活”。意思就是两台机器一起干活,平时负载均衡,谁也别闲着,一旦死了一个,剩下的那个咬咬牙把所有活儿都扛下来。这种架构调起来最恶心,经常出现数据对不齐的情况,得靠各种复杂的中间件去磨合。
稳重博主的真心话
现在的年轻人总觉得搞个云服务,点点鼠标选个高可用就行了。底层的逻辑还是这一套。我为什么要死磕这些?因为搞咱们这一行的,稳重比什么都重要。你技术再牛,关键时刻系统崩了,客户不信你,老板不发薪,你说啥都没用。折腾这么多年,我总结出一句话:所谓“双”,就是别把鸡蛋放进一个篮子里,且永远要给那个篮子留条后路。
别觉得这事儿麻烦,当你亲身经历过大半夜服务器挂了,但由于你提前布好了“双机”,系统自动切换成功,你翻个身继续睡觉的时候,你就会发现,这种提前预案带来的安全感,比涨几千块工资爽多了。现在我不管是做业务还是做运维,首要考虑的就是容灾。没经历过数据全丢的绝望,是体会不到这种对“备份”的执着的。
