多机房建设的思考

一、多机房的意义

机房可能会出现不可预料的故障,不能把鸡蛋放一个篮子里。多机房的目的是在保证99%的高可用的基础上增加0.1%。

1、同城多机房

同城的两个机房通过一根专线连接,应对机房级别的最优架构

2、跨城多机房

异地距离远带来的网络延迟问题,容易导致数据不一致。
需要考虑的是数据是否要求强一致性!!不适用于强一致性的需求。

3、跨国多机房

距离相比跨城多机房更远,网络延迟更严重,适合只读业务和为不同地区用户服务的场景。

二、具体步骤

1、业务分级

  • 访问量
  • 核心业务
  • 带来大量收入

2、数据分类

image.png

3、数据同步

  • 存储系统同步
  • 消息队列同步
  • 支持重复生成

4、异常处理

  • 多通道同步
    支持mysql主从同步和消息队列一起。
  • 同步和访问结合
    A机房可以访问B机房接口
  • 日志记录
  • 用户补偿

三、常用技巧

1、保证核心业务

登录相比注册更核心

2、保证核心数据的最终一致性

不保证实时一致性

3、采用多种同步数据手段

4、保证绝大多数用户

保证99.99%,不去强制要求剩下的0.01%也符合此要求。

  • 发布公告
  • 事后弥补补偿用户
  • 业务体验优化

你可能感兴趣的:(多机房建设的思考)