如何解决高并发发送请求后,数据库所插入的记录有丢失现象?
1.这边用压测工具模拟10000个线程高并发发送请求:具体如下图: 框起来的创建了10000个线程
这是一个api请求,后台是请求一次插入一条数据 这边用了15100000000 这个手机号码, 插入一条递增1 , 理想区间(15100000000-15100009999)
2.我开始调用http://127.0.0.1:7215/goods/sender?mobile=1xxxxxxxx
后台有个rabbitMQ将这些手机号码放入到rabbitMQ队列中,具体如下图:
3.问题来了,10000个线程发送了10000个请求完毕后,我这边观察数据库的记录条数,发现数据库丢失了记录。
根据id进行降序排序之后,看图可以发现只有9721条数据,10000减去9721条数据,可见有279条数据没插入到数据库中。
那么问题来了:
请问如何解决高并发发送请求,存入数据库的记录条数不丢失的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1.查看JMeter结果树, 把请求失败的显示出来, 可能没请求成功
2.查看日志有没有报错
3.RabbitMQ加死信通道, 并查看rabbitMQ队列消费情况
4.mysql 用count()来统计