默认

达达O2O后台架构演进实践:从0到4000高并发请求背后的努力

查看数: 100609 | 评论数: 8 | 收藏 8
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-12-10 16:41

正文摘要:

1、引言 如上图所示,方案说明如下: 1)整个ID的二进制长度为64位;2)前36位使用时间戳,以保证ID是升序增加;3)中间13位是分库标识,用来标识当前这个ID对应的记录在哪个数据库中;4)后15位为MySQL ...

评论

JackJiang 发表于 4 年前
引用:AlwaysOnline 发表于 2019-08-31 11:32
看完此文,有如下疑问:
1.在做数据库拆分操作时,数据库是线上环境。如何在不影响用户操作的情况下做此操 ...

1、这个如果在一开始就考虑好了的话,是不需要临时来进行分库分表的。但如果后期才想到,那么肯定要选一个用户量少的时间点来进行维护啦;
2、差不多是这样;
3、技术栈是根据团队的情况决定的,就像微信后台用c++,完全是张少龙的foxmail团队技术积累的原因;
4、公司都是从小做到到的,很小的时候技术视野或能力有限,肯定是选择自已最有保握的方案了;
5、你去参考一下twitter的snowflake算法
游客 发表于 4 年前
看完此文,有如下疑问:
1.在做数据库拆分操作时,数据库是线上环境。如何在不影响用户操作的情况下做此操作呢?可能没有表达清楚,我的意思是数据库中存储的都是真是的数据,在对真实数据分表、分库(建库、建表、导入数据)时不影响正常的业务是如何做到的呢?
2.根据订单ID水平分库,我的理解是订单ID库每个订单表假设可以存储500万条数据,超过500条后会单独在新建一个订单表存储订单数据。不知我的理解是否正确?
3.当初有考虑使用Nodejs做开发语言吗? 为何会选Python 呢?
4.数据库选用MySql,  有考虑过使用mongodb 吗?是因为MySql有事务支持吗?
5.对文中的ID生成算法可否提供下示例代码,谢谢!
夏冬274 发表于 5 年前
好文
kakaka86 发表于 5 年前
好文章啊
Shahala 发表于 5 年前
浅显易懂,好文好文
JackJiang 发表于 5 年前
引用:现实点 发表于 2018-12-10 17:22
我想问一下,通过id来进行分库,那它在查询的时候,怎么进行判断?

查的时候根据id划分,自动去对应的库查
现实点 发表于 5 年前
我想问一下,通过id来进行分库,那它在查询的时候,怎么进行判断?
JackJiang 发表于 5 年前
本文非常适合用作架构设计学习案例,简单易懂,没什么复杂的概念。力荐!

返回顶部