需要建议,开始在java中开发缓存应用程序

时间:2013-06-26 10:25:28

标签: java caching map hashmap in-memory

我知道这是一个主观问题,我试图谷歌,并浏览了不同缓存提供商的文档,如ehcache等。

用例/问题规则:应用程序(缓存应用程序)将位于服务器的不同VM中,并且应用程序A,B,C等多个应用程序驻留在不同的VM中,可以与缓存应用程序进行通信,类似于Sqlfire / gmfire的概念,即在内存缓存中。

方法: 注意:考虑到要求,我不想使用现有的缓存机制,如mmcache,ehaceh等,

请问您应该从哪里开始,如:

1 - 使用HashMap / ConcurrentHashMap对于这个或不是正确的方法吗? 2 - 如何实现不同的VM通信 3 - 作为一个初学者,我应该遵循一些最佳实践。 4-went thorugh在这里张贴了各种问题,其中一个链接是Develop in Memory Object Cache

仍然混淆我如何实现与此缓存VM通信的不同VM。

我可能不太清楚我想到的粗略想法,如果您需要进一步澄清,请告诉我。

1 个答案:

答案 0 :(得分:1)

不同的VM相互通信,您可以使用RMI,Web服务,Rest-Services。使用RMI,您将必然使用Java作为另一个通信方。然而,Web服务和rest-web-services将为您提供使用.NET,Java或其他缓存客户端的优势。

首先:

使用集合,如果你有大量的读写,你可以使用ConcurrentHashMap,这仍然会有更好的表现。

您应该考虑遵循更多参数:

  • 内存管理
  • 元素老化
  • 驱逐政策

但如果没有什么不同或更好的方式来重新发明,那么重新发明轮子并不是一个好主意。

您还需要考虑,由于缓存太多,缓存应用程序不会耗尽内存。