这听起来像是一个愚蠢的问题或简单的问题,但是我对任何类型的集群的经验确实很少甚至没有,而且我只是好奇是否可以实现特定场景。
假设我已经建立了N个Tomcat实例的集群,并且已经在所有N个实例中部署了应用程序App1
。
为了能够在应用程序中拥有某些Bean(不是全部,而是某些)在整个集群中“共享”,我需要做些什么?
即,如果我有一个用于WebsiteSettings
的Bean,我希望有一些查找过程,其中应用程序可以要求该Bean并为其提供一个实例,并且对该Bean的属性/值的任何更新也可用于其他任何应用程序集群中的所有计算机WebsiteSettings.getGreeting()
即WebsiteSettings.getGreeting()
在更新时都会在所有N台计算机上返回相同的值。
我是否需要将这些bean设置为MBean,并让App1
通过JMX查找它们? Tomcat的集群支持是否会负责将MBean中的更改自动复制到集群中的所有节点上?
请看一下Terracotta-它允许您将同一个对象(以某种方式)驻留在许多实例上,这些实例中其他节点的所有更新均在JVM级别而不是在代码中无缝完成。
您可能需要查看一下以获取更多信息- 什么是兵马俑
一种选择是使用共享的分布式缓存。 有几种可以轻松为您提供此功能的工具。