在Memory Buffer中用于在java中存储数据

时间:2015-08-04 06:54:31

标签: java java-ee asynchronous jms

我需要将来自UI的数据存储到稍后可以处理的某个地方。在DB或文件中写入不是一种选择,因为这需要时间。 我需要此操作是异步的,以便该人不必等待处理数据。 JMS是一个选项,但Queue可能会超载,因为调用的数量是数千。 有没有办法可以将它写入临时Map或以后可以使用的东西。它无需同步

2 个答案:

答案 0 :(得分:0)

1)使用速度非常快的嵌入式数据库,因此不会有太大的开销 您可以从探索more info link 2开始 这是内存+开源。您只需要在项目中包含一个jar。

如果数据更多,则在较长时间内运行同步映射 有性能开销 如果计划外的Sever /应用程序中断,用户输入的数据可能会丢失,如果您将其存储在Map中。

2)如果允许使用第三方库,您可以使用H2 database engine根据时间或最大缓存大小使条目到期。

3)如果选项1和2看起来不合适,您可以考虑使用Guava CacheBuilder

答案 1 :(得分:-1)

金额是多少?如果数据量较少,您可以通过存储在会话中来解决此问题。