查看: 5611|回复: 4
打印 上一主题 下一主题
收起左侧

秒杀业务

[复制链接]

1

主题

9

帖子

39

积分

新手上路

Rank: 1

积分
39
楼主
跳转到指定楼层
发表于 2017-12-6 23:11:02 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
飞哥,我最近这个问题困扰我很久了。我打算弄个秒杀业务模块,SSM结构的工程。我打算用activeMQ来实现高并发。我遇到一个问题,就是一个Controller发一个消息在队列中,我使用了事务。但是,我后台有大概2000个线程在处理。后台处理时,因为秒杀主要就看库存够不够的问题,所以,有很大一部分秒杀请求,是无法购买成功的,这个时候我希望跳个页面给客户,但是,Controller执行完发消息,就完了。怎么才能让客户知道,自己是否购买成功呢?如果用redis做库存的话,怎么能防止同一个客户的重复秒杀呢?我这里用的是数据库的联合主键,来防止重复秒杀的。飞哥,如果问题描述的不清楚,我希望可以单独聊聊。因为这个问题,困扰我很久,我对大数据处理和并发编程的能力很欠缺,求指导!!!飞哥。。。。
回复

使用道具 举报

1

主题

9

帖子

39

积分

新手上路

Rank: 1

积分
39
沙发
 楼主| 发表于 2017-12-15 22:34:56 | 显示全部楼层
johnny 发表于 2017-12-11 08:58
秒杀业务这块,你可以先把用户的秒杀请求写入队列,然后根据你的规则读取秒杀请求。

秒杀成功或者失败都可 ...

这个问题我明白了!主要还有三个问题。
第一个问题:在不能分库分表的情况下,如果一个数据库的数据量有几百万条,查询效率很低,而且这个数据的数据每天都是增长的,且增长的非常快,这就不太适合做索引那该怎么办?
第二个问题:用mycat分库分表用主键求余的方式得到这条数据改进哪个库,如果某天我要扩容,那么求余的话的顺序就不对了。这样的话会不会影响查询?如果影响的话,我该怎么办?
第三个问题:mysql复合索引使用的注意事项有哪些?
飞哥,求助,这些问题我都不太懂
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 打开微信扫一扫