论坛首页 综合技术论坛

淘宝下单高并发解决方案

浏览 91742 次
该帖已经被评为精华帖
作者 正文
   发表时间:2012-04-25  
通过买家id最后两位来定位, 那要是遇到相同的怎么办?
0 请登录后投票
   发表时间:2012-04-26  
codeone 写道
请教楼主一个问题,你说的表拆分是把一个很多字段的表拆分到多个包含少量列的表里?还是将表放到多个数据库里,表结构保持不变?

这是水平分表,水平分表schema不变,分拆成多张schema一样的表
0 请登录后投票
   发表时间:2012-04-26  
lofei117 写道
通过买家id最后两位来定位, 那要是遇到相同的怎么办?

只是通过这个来定位数据库,没有说通过这个来确定订单。

定位了数据库后,再通过订单查询
0 请登录后投票
   发表时间:2012-04-26  
很受用,谢谢了
0 请登录后投票
   发表时间:2012-04-26  
yukaizhao 写道
订单号介绍勘误:
文中对于订单号的表述有点问题,对于16台服务器,每台服务器64张表只需要2位买家或卖家id的后两位数字就可以准确定位到具体的库和表。订单号中同时存在买家id的最后两位和卖家id的最后两位。分别在订单号的倒数第3,4位数和最后两位数。
假定买家id为123456789,那么在订单号中的最后两位就是89,通过89对16取模就可以定位到具体的库上,通过对64取模就可以定位到具体的表上。

简单靠取模来判断数据和表,不太好吧。
如果后期有新表和服务器。加入呢。
用类似memcache 中一致性hash。不知道怎么样。
0 请登录后投票
   发表时间:2012-04-26  
手滑,点收藏竟然点到了隐藏贴上。。。
请各位拍砖轻点~~~
1 请登录后投票
   发表时间:2012-04-26  
lofei117 写道
通过买家id最后两位来定位, 那要是遇到相同的怎么办?

这只是分库的路由策略,肯定是有n多重复  再取模定位到数据库
0 请登录后投票
   发表时间:2012-04-26  
montya 写道
yukaizhao 写道
订单号介绍勘误:
文中对于订单号的表述有点问题,对于16台服务器,每台服务器64张表只需要2位买家或卖家id的后两位数字就可以准确定位到具体的库和表。订单号中同时存在买家id的最后两位和卖家id的最后两位。分别在订单号的倒数第3,4位数和最后两位数。
假定买家id为123456789,那么在订单号中的最后两位就是89,通过89对16取模就可以定位到具体的库上,通过对64取模就可以定位到具体的表上。

简单靠取模来判断数据和表,不太好吧。
如果后期有新表和服务器。加入呢。
用类似memcache 中一致性hash。不知道怎么样。

一致性hash,也不见得能解决这个问题,添加节点,新节点没有数据,这样也会导致负载不均衡
0 请登录后投票
   发表时间:2012-04-26  
分析的挺不错的!受用了!
0 请登录后投票
   发表时间:2012-04-26  
而把附加功能剔除出去。比如说下单要考虑库存量,考虑发短信,要给卖家发旺旺消息通知,要对订单做统计,要做销售额统计等等


---- 这东西怎么也不会做到一个 TPS 里,拆分个屁。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics