2.电商订单系统的设计

参考博客:大众点评是如何实现分库分表的

http://www.360doc.com/content/18/0126/10/40769523_725195148.shtml

①订单部分数据库的设计

②订单号的生成(全局唯一ID)

由于订单号的高并发,使用百度开源的,基于Snowflake算法的全局唯一ID生成器UidGenerator。源码地址:https://github.com/baidu/uid-generator

美团提供的分布式ID:Leaf:美团分布式ID生成服务开源

订单号的规则:唯一ID+用户ID(取4位)

商家订单号的规则:唯一ID+商家ID(取4位)

③基于买家与卖家两个维度的分库分表

买家是1套库,新增订单后,再发送MQ消息,同步到卖家库。

步骤:

1.分库分表依据,根据订单号中买家ID进行Hash取模,这样同一个买家的所有订单都会存入同一个表中,例如:先对库进行取模,再对表取模,从而确定订单应该在哪个库哪个表中,可以使用阿里的中间件mycat实现,编写mycat的分库分表规则。

2.将订单号消息发送到MQ,根据卖家ID生成卖家全局唯一卖家订单ID,以下为卖家的订单表,使用与买家分库分表同样的规则,将商家的所有订单存入同一个表中。

3.利用一致性Hash算法减少离散分片在拓展的时候需要重新hash的影响。

猜你喜欢

转载自blog.csdn.net/weixin_42228338/article/details/92847434