EJB单例作为共享内存?

时间:2011-08-04 11:39:24

标签: caching ejb-3.1

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

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

1 个答案:

答案 0 :(得分:4)

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

像Coherence或Infinispan这样的典型缓存解决方案有很多功能,例如驱逐策略,群集复制拓扑,溢出到磁盘等,在这种情况下你会非常感激。

Singletons可以方便地用于让您的其他bean访问Infinispan缓存等全局资源。