使用ehcache通过docker部署的应用程序针对无状态规则

我有一个spring-boot应用程序,我想将其部署到多个docker实例中,并且在实例之前有一个负载平衡。 但是,应用程序使用ehcache从数据库中caching一些数据。 它使应用程序有状态。 因此,如果没有会话粘性,同一个客户可能会遇到不同的Docker实例,并看到不同的结果。 我的问题是,如果我不能应用会话粘滞负载平衡,通过泊坞窗风格部署应用程序cachingfunction的最佳做法是什么,仍然符合应该是无状态的规则?

我在这里解释了这个devoxxvideo聚集caching如何帮助你的每个docker实例共享相同的caching

将ehcache和兵马俑联合起来以允许在节点间进行分布式caching是很常见的。

问候

首先,如果你真的有一个纯粹的caching用例,那么不应该只对性能有影响。 当然,这对你的应用本身来说可能是一件坏事。

但有效的是,如果要使用caching来提供性能,并且同时具有多节点能力,而不需要粘性会话,则必须进入分布式caching领域。 这将使您能够在不同节点之间共享caching内容,从而使对话中的给定请求透明(多),以打击应用程序的任何节点。

在Ehcache世界中,这意味着使用Terracotta服务器支持caching,请参阅文档以获取详细信息。