这可能听起来像一个愚蠢或简单的问题,但我真的几乎没有任何类型的聚类经验,我只是好奇是否以及如何可能的某种情况。
假设我已经设置了一个N个Tomcat实例的集群,并且我已经在所有N个实例中部署了我的应用程序App1
。
我需要做些什么才能在应用程序中拥有某些bean - 不是全部,而是一些 - 在群集中“共享”?
即,如果我有WebsiteSettings
的bean,我想要一些查找过程,其中应用程序可以请求bean并获得它的实例,以及对bean的属性的任何更新/值也可用于集群中的任何其他计算机,即,WebsiteSettings.getGreeting()
将在所有N台计算机上更新时返回相同的值。
我是否需要将这些bean设置为MBean,并让App1
通过JMX查找它们? Tomcat的集群支持是否会自动将MBean中的更改复制到集群中的所有节点?
答案 0 :(得分:5)
请查看Terracotta - 它允许您在许多实例中驻留相同的对象(在某种程度上),其中其他节点的所有更新都在JVM级别中无缝完成,而不是你的代码。
您可能需要查看此内容以获取更多信息 - What Is Terracotta
答案 1 :(得分:1)
一种选择是使用共享分布式缓存。有几种可以轻松为您提供此功能。