我想问一下你是否会推荐EJB3.1单例bean作为应用程序内存共享数据的存储空间。想象一下一些简单的应用程序需要将数据保存在内存中(而不是数据库中) - 例如一些即时消息服务器获取的数据是谁和谁不在线(用户状态)。
您是否会推荐使用EJB3.1单例,或者您更喜欢Coherence等典型的缓存机制?我可以想象一个具有多个JVM的集群,然后我想到使用JMS告诉其他单例应用程序内存发生了变化。
答案 0 :(得分:4)
EJB单例非常便于提供对小数量的应用程序作用域数据的访问,但我不建议仅使用它们来管理群集中共享的大量数据。
像Coherence或Infinispan这样的典型缓存解决方案有很多功能,例如驱逐策略,群集复制拓扑,溢出到磁盘等,在这种情况下你会非常感激。
Singletons可以方便地用于让您的其他bean访问Infinispan缓存等全局资源。