In Memory Buffer 将数据存储在 java

In Memory Buffer to store data in java

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

金额大小是多少?如果数据量较少,可以通过存储在session中解决。

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

如果数据比较多,会在更长的运行同步地图中 有性能开销。
在计划外 Sever/application 中断的情况下,如果将用户输入的数据存储在地图中,则可能会丢失。

2) 如果允许使用第三方库,您可以使用 Guava CacheBuilder 根据时间或缓存的最大大小使条目过期。

3) 如果选项 1 和 2 不适合您,您可以考虑使用 ConcurrentHashMap