如何解决高并发发送请求后,数据库所插入的记录有丢失现象?

发布于 2022-09-11 21:40:28 字数 877 浏览 12 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

慵挽 2022-09-18 21:40:28

1.查看JMeter结果树, 把请求失败的显示出来, 可能没请求成功
2.查看日志有没有报错
3.RabbitMQ加死信通道, 并查看rabbitMQ队列消费情况
4.mysql 用count()来统计

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文