高并发处理

来源:互联网 发布:天翼掌上大学mac版 编辑:程序博客网 时间:2024/05/30 05:01

我们的项目跑起来很慢,怎么解决呢? 比如:每秒可能有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速度不够快,内存队列将越来越大(输入速度大于输出速度),把内存耗光.

原创粉丝点击