caching - EJB 单例作为共享内存?

标签 caching ejb-3.1

我想问一下您是否会推荐EJB3.1 singleton beans作为应用程序内存共享数据的存储。想象一些简单的应用程序需要将数据保存在内存中(而不是数据库中) - 例如某些即时消息服务器获取谁在线和谁不在线的数据(用户状态)。

您会推荐使用 EJB3.1 单例还是您更喜欢一些典型的缓存机制(例如 Coherence 等)?我可以想象一个具有多个 JVM 的集群,然后我想到使用 JMS 告诉其他单例应用程序内存发生了变化。

最佳答案

EJB 单例对于提供对少量应用程序范围数据的访问非常方便,但我不建议仅使用它们来管理集群中共享的大量数据。

典型的缓存解决方案(例如 Coherence 或 Infinispan)具有许多功能,例如逐出策略、集群复制拓扑、溢出到磁盘等,在这些情况下您会非常欣赏这些功能。

单例可以方便地用于让其他 bean 访问全局资源,例如 Infinispan 缓存。

关于caching - EJB 单例作为共享内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6940790/

相关文章:

java - 解析来自 ejb 代理的注释元数据

java - 当 ejb-jar.xml 存在时,EJB3 注释将被忽略

java - Spring-boot jca cci需要连接池

php - 在 Laravel 中 artisan config :cache actually cache the config as specified in the cache. php 设置?

json - 将对象保存在缓存中的最佳实践

ios - 如何在 Meteor 中缓存图像?

java - 有没有办法配置 ehcache 在无法获取更新版本时返回过期对象?

java - 如何取消异步触发的线程并返回 Future?

http - 请求 <HTTP 级缓存> 解释

java - 为什么在生产者中使用 @Singleton 而不是 @ApplicationScoped?