高并发处理

本文探讨了在高并发场景下,如何通过使用队列和缓存机制提高数据库操作的效率。介绍了如何将频繁的数据库插入操作缓存在内存队列中,并通过后台线程批量处理,减少对数据库的直接访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们的项目跑起来很慢,怎么解决呢? 比如:每秒可能有300次访问,每次访问都向数据库插入数据。
然后用户还要查看结果,这个结果也是查询数据库。如果不采用缓存机制的话,效率可能会很低。
我想先将这些访问请求放入队列中,然后统一由一个后台线程执行,比如2秒执行一次。解决办法:

频繁的insert可以用先insert到内存的队列中

队列要么threadsafe,要么用代码保护.

保存的thread从队列另一边取得一堆object,用一个事物保存到db中.保存的的thread可以一直打开数据库连接不关闭.事物隔离度一般为read committed即可.

读操作的事物隔离度设置为read committed不会与写操作产生冲突(既一个操作阻塞另一个操作)

:输入->byte->object->queue->取出object->用hibernate保存到DB


一般硬盘的i/o速度还是比网络接口的i/o速度快一点的.

如果硬盘的i/o速度不够快,内存队列将越来越大(输入速度大于输出速度),把内存耗光.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值