多个Application Server

时间:2015-05-19 08:37:09

标签: java web-services caching soap jcache

我们在反向代理后面有多个Application Server。我们希望在另一台主机上使用单个缓存,所有应用程序服务器都可以轻松使用,因此缓存必须具有某种网络支持。此外,设置应该很容易支持docker,但这不是必须的。缓存持续时间约为1d。 API应该尽可能简单和标准化(JCache?)。 在稍后阶段,我们希望预先解析缓存。

我有哪些选择?

背景:在第一步中,我们希望减少后端系统的负载,后端系统主要提供SOAP服务。所以我们想要缓存SOAP响应(JAX-WS)。在第一阶段,缓存命中率可能约为25%。 稍后我们也想为JPA使用相同的缓存(我们已经为每个Application Servcer启用了内存缓存并使用缓存协调策略)。 要使用更多缓存,我们需要一些排序缓存类别。

2 个答案:

答案 0 :(得分:1)

一般来说:问题是广泛的,实际上你是在寻求产品推荐。请查看stackoverflow问题指南。

关于您的问题:

没有"单一缓存"出于任何目的。此外,软件和系统架构中可能存在许多变体,也有单个缓存产品。最佳解决方案不取决于应用程序,而取决于您要缓存的数据访问类型。我想到了一些问题:

您是否拥有大部分读取或读/写使用模式? 访问类型,点,范围或完整扫描的类型是什么?您对数据执行什么类型的操作?对象数和典型对象大小是多少?有热点吗?你有多少个应用服务器?应用程序服务器中是否有内存限制?在后端生成数据的成本是多少(延迟和资源成本)?

一个一般建议:如果您只有几个应用程序服务器,我将从应用程序服务器中的本地缓存开始,并忽略来自不同应用程序服务器的后端可能存在冗余请求的事实。这样您就可以保留现有的系统架构。放入一个单独的缓存服务器或服务器需要大量的计划和很多考虑因素,用于暂存,部署和操作您的应用程序。

一秒通用建议:第一阶段的缓存命中率可能约为25%这个命中率的缓存将毫无用处。可能会发生根本没有从缓存中获得任何性能提升的情况。无论如何,可能有理由这样做,例如,改善闪光灯人群的应用。这需要更详细的阐述。仔细检查你的号码!

我期待更详细的问题:)

答案 1 :(得分:0)

如何使用Ehcache中的缓存服务器? 它提供RESTful接口,可以在专用服务器上运行。