我们为什么要做多机房部署
魅族经过2014-2015年的转型以及销量大爆发后,随之而来的互联网服务业务越来越多,用户基数越来越大,之前单机房的扩展架构已经满足不了魅族的发展,此外加上国内复杂网络环境下,单机房无法满足我们的可靠性需求。近年经常出现的光缆被挖、机房掉电。如支付宝光纤被挖断,导致业务中断;去年微信也出现大面积故障,同样是光纤被挖断。除了单机房故障风险外,用户就近接入的需求也很强烈。
技术挑战
- 机房之间的网络延迟和带宽限制, 租用运营商的专线非常昂贵,可靠性也得不到保障;
- 业务依赖关系复杂;
- 机房之间流量的精确调度;
- 业务改动不能太大。
多机房方案最大的挑战是机房之间网络延迟所带来的一系列问题如一致性,当然业界也有一些成熟的方案,例如阿里的单元化方案,按用户把业务封闭在一个单元里;腾讯的set方案,还有微博的跨机房方案,主要是集中写,提供了快速切换的方案。
业界方案
魅族多机房方案
我们借鉴以上几种方案,把业务进行一些梳理,映射到下面两种业务:
- 读多写少
- 按用户分离
读多写少
这类业务主要是读取,极少写入,所以我们甚至把这类业务归纳为只读业务。