所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

在大数据高并发环境下应该怎么保证库存或者下单同步?

发布时间:2020-04-15 16:39:58

资讯分类:下单  大数据  库存  同步  扣除  商品  下单
在大数据高并发环境下应该怎么保证库存或者下单同步?

场景:秒杀活动,天猫双11,12306购票等。

库存同步或下单同步,指同一时间内用户在抢购同一个商品时,库存不要超额扣除。

首先是大数据量且高并发环境,下单时必须保证数据一致性,一般不直接操作数据库进行下单 ,而是通过如下手段对请求进行限流等。

1)利用redis的单线程原子操作性质,完成商品数量的扣除。

2)扣除成功后,可以使用消息队列发送请求到下一个模块,例如扣除商品或扣款等。

3)在操作数据库进行商品数量扣除时,可以使用乐观锁对商品数量进行校验。

在大数据高并发环境下应该怎么保证库存或者下单同步?

库存加载到缓存,如redis,基于redis的原子操作扣减库存,以及库存验证。

下单成功后,发送下单成功mq,库存系统消费mq扣减库存。当然,消费方要保证幂等。

库存系统数据库操作使用乐观锁。

在大数据高并发环境下应该怎么保证库存或者下单同步?

这个需要在数据库端建立集群,并进行读写分库。

在大数据高并发环境下应该怎么保证库存或者下单同步?

并发条件下,为了确保系统稳定同步,需要做redis缓存,以及使用rocketmq消息中间件异步处理,如果需要做大屏事实数量同步使用kafka解偶,从而可最大限度提高系统并发。

在大数据高并发环境下应该怎么保证库存或者下单同步?

1、页面库存不是实时刷新的,每次打开页面才刷新

2、库存查询和下单分别是读写操作,读写操作都要锁,要原子操作。

在大数据高并发环境下应该怎么保证库存或者下单同步?

数据库的锁肯定能保证库存,但是并发量不会太高,高并发可以用消息队列加缓存。

留言与评论(共有 0 条评论)
   
验证码:
Top