gpt4 book ai didi

java - 有没有办法在负载平衡集群上的多个 tomcat 之间共享对象?

转载 作者:搜寻专家 更新时间:2023-11-01 03:02:30 31 4
gpt4 key购买 nike

我有两个在负载平衡集群上运行的 tomcat 实例。我也有一个应用程序运行在这两个实例上,我有两个疑惑:

  1. 当一个对象在一个实例中更改其状态时,它是否会在另一个实例中更改,即在两个实例中保持(该特定对象的)相同状态?

  2. 如果答案是否定的,那么我如何在不使用数据库的情况下在两个实例上共享保持相同的对象状态?

最佳答案

如果可以向项目添加一些依赖项,那么也许您应该考虑使用Hazelcast。 .配置集群非常容易,它提供了一个 IAtomicReference ,这似乎很适合您的需求。

要在代码中启动 Hazelcast 集群中的节点,您只需运行:

HazelcastInstance instance = Hazelcast.newHazelcastInstance();

这通过读取一些配置 xml 或使用默认设置(如果未定义)来创建一个实例。要创建和分配将存储和分发您的对象的原子引用,您可以调用如下内容:

IAtomicReference<Foo> ref = instance.getAtomicReference("terefere");
if(ref.isNull()){
ref.set(new Foo());
}

然后您可以通过对其应用函数来更改引用对象的状态,如:

ref.apply(foo -> foo.setBar(true));

关于java - 有没有办法在负载平衡集群上的多个 tomcat 之间共享对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32276032/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com