在Tomcat集群中,如何在应用程序中共享bean?

问题描述 投票:1回答:2

这听起来像是一个愚蠢的问题或简单的问题,但是我对任何类型的集群的经验确实很少甚至没有,而且我只是好奇是否可以实现特定场景。

假设我已经建立了N个Tomcat实例的集群,并且已经在所有N个实例中部署了应用程序App1

为了能够在应用程序中拥有某些Bean(不是全部,而是某些)在整个集群中“共享”,我需要做些什么?

即,如果我有一个用于WebsiteSettings的Bean,我希望有一些查找过程,其中应用程序可以要求该Bean并为其提供一个实例,并且对该Bean的属性/值的任何更新也可用于其他任何应用程序集群中的所有计算机WebsiteSettings.getGreeting()WebsiteSettings.getGreeting()在更新时都会在所有N台计算机上返回相同的值。

我是否需要将这些bean设置为MBean,并让App1通过JMX查找它们? Tomcat的集群支持是否会负责将MBean中的更改自动复制到集群中的所有节点上?

java tomcat javabeans cluster-computing
2个回答
5
投票

请看一下Terracotta-它允许您将同一个对象(以某种方式)驻留在许多实例上,这些实例中其他节点的所有更新均在JVM级别而不是在代码中无缝完成。

您可能需要查看一下以获取更多信息- 什么是兵马俑


1
投票

一种选择是使用共享的分布式缓存。 有几种可以轻松为您提供此功能的工具。

© www.soinside.com 2019 - 2024. All rights reserved.