Uber 架构升级

原文地址:http://eng.uber.com/mezzanine-migration/

整个文章结构比较清晰

1.目标:为什么要做这件事情

2.关键点:解决这件事情的关键点

3.怎么做:解决方案和设置milestone

4.效果

文章内容概括:

对于快速增长的业务需求,需要对读写trip的架构进行升级,针对原来架构的升级需要考虑以下内容:

1.健壮性(数据不丢,有备份,现有数据的复制,出错容易定位,专业的运维)

2.存储、读写的横向可扩展

3.写的可靠性和短期批量读的可靠性

4.支持第二索引,可以用city,user等各种角度来读数据

5.线上无宕机时刻

最终采取的决策是,使用无schema的存储数据结构,使用uuid做为可横向扩展的索引以及使用mysql来做存储

1.shard,mysql的行级存储,通过扩展mysql进行数据的shard

2.append-only模式

3.有缓冲的写,当写的速度慢或者写存储挂掉时,可以通过写在可缓冲的地方,后续再通过回放的方式来完成数据正确的存储

4.mysql天然支持二级索引

剩下的就是一些细节问题,通过双写等常用的方式来保证线上系统的正确性。

你可能感兴趣的:(Uber 架构升级)