Java 内存中用于将对象写入数据库的批处理缓冲区
我想从一个web站点收集一些用户操作,在大多数页面访问中,它会向跟踪服务器发送一个AJAX请求,然后跟踪服务器依次提取相关的数据结构并将其写入一些数据库表。 由于网站在重载下运行(尤其是在圣诞节之前),因此相关页面的视图很多,这导致对跟踪服务器的请求很多 如果有请求,我立即将数据写入数据库,我肯定会遇到麻烦,例如Java 内存中用于将对象写入数据库的批处理缓冲区,java,database,concurrency,buffer,java-8,Java,Database,Concurrency,Buffer,Java 8,我想从一个web站点收集一些用户操作,在大多数页面访问中,它会向跟踪服务器发送一个AJAX请求,然后跟踪服务器依次提取相关的数据结构并将其写入一些数据库表。 由于网站在重载下运行(尤其是在圣诞节之前),因此相关页面的视图很多,这导致对跟踪服务器的请求很多 如果有请求,我立即将数据写入数据库,我肯定会遇到麻烦,例如 即使使用连接池,我也会很快用完未分配的连接,并且池队列中的等待时间将开始越来越多 对数据库的并发访问可能会导致表锁定问题,因为所有数据都写入同一个表,并且查询时间将开始增加 然而,
- 即使使用连接池,我也会很快用完未分配的连接,并且池队列中的等待时间将开始越来越多
- 对数据库的并发访问可能会导致表锁定问题,因为所有数据都写入同一个表,并且查询时间将开始增加
- 只有一个连接
- 在数据库表级别没有并发性
,例如,与定期轮询队列长度的计时器结合使用。有人有更好的建议吗?如果队列中有东西,您还应该有一种定期刷新的机制,例如每5秒刷新一次。这对于测试/开发时间来说非常方便。当然:)它还可以防止数据在队列中堆积