【2017年整理】沈剑:58同城数据库架构最佳实践.docVIP

  • 6
  • 0
  • 约6.11千字
  • 约 15页
  • 2017-06-08 发布于浙江
  • 举报

【2017年整理】沈剑:58同城数据库架构最佳实践.doc

【2017年整理】沈剑:58同城数据库架构最佳实践

数据库的基本概念 基本概念这一块,主要是让大家就一些数据库方面的概念达成一致。 首先是“单库”,最初的时候数据库都是这么玩的,几乎所有的业务都有这样的一个库。 接下来是“分片”,数据库的分片是解决数据量大的问题。如果数据量非常大,就要做水平切分,有一些数据库支持auto sharding。之前58同城也用过两年mongoDB,后来发现auto sharding功能不太可控,不知道什么时间进行迁移数据,数据迁移过程中会有大粒度的锁,读写被阻塞,业务会有抖动和毛刺,这些是业务不能接受的,因此现在又迁移回了MySQL。 一旦进行分片,就会面临“数据路由”的问题:来了一个请求,要将请求路由到对应的数据库分片上。互联网常用的数据路由方法有三种: (1)第一个是按照数据范围路由,比如有两个分片,一个范围是0-1亿,一个范围是1亿-2亿,这样来路由。? 这个方式的优点是非常的简单,并且扩展性好,假如两个分片不够了,增加一个2亿-3亿的分片即可。? 这个方式的缺点是:虽然数据的分布是均衡的,每一个库的数据量差不多,但请求的负载会不均衡。例如有一些业务场景,新注册的用户活跃度更高,大范围的分片请求负载会更高。 (2)第二个是按照hash路由,比如有两个分片,数据模2寻库即可。? 这个方式的优点是路由方式很简单,数据分布也是均衡的,请求负载也是均衡的。? 这个方式的缺点是如果两个分片数据量过大,要变成

文档评论(0)

1亿VIP精品文档

相关文档