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。
我需要将来自 UI 的数据存储到某个地方,以便稍后处理。写入数据库或文件不是一种选择,因为这些需要时间。 我需要这个操作是异步的,这样这个人就不必等待数据被处理。 JMS 是一个选项,但队列可能会超载,因为调用数量为数千。 有没有办法可以将它写入临时 Map 或以后可以使用的东西。不需要同步
金额大小是多少?如果数据量较少,可以通过存储在session中解决。
1) 使用速度非常快的嵌入式数据库,因此不会有太多开销。
您可以从探索 H2 database engine.
开始
这是内存+开源。您只需要在您的项目中包含一个 jar。
如果数据比较多,会在更长的运行同步地图中
有性能开销。
在计划外 Sever/application 中断的情况下,如果将用户输入的数据存储在地图中,则可能会丢失。
2) 如果允许使用第三方库,您可以使用 Guava CacheBuilder 根据时间或缓存的最大大小使条目过期。
3) 如果选项 1 和 2 不适合您,您可以考虑使用 ConcurrentHashMap。