gpt4 book ai didi

java - Tomcat 内存缓存 - 集群上的复制

转载 作者:行者123 更新时间:2023-11-28 22:25:12 27 4
gpt4 key购买 nike

我有一个关于 Tomcat 集群的问题。我有一个 Java 应用程序,我们在其中实现了内存缓存。所以基本上当 Tomcat 启动时,它会从数据库中加载一些对象。这些对象像静态对象一样存储在tomcat内存中。因此,每当我们从应用程序更新某些内容时,它都会写入数据库并更新内存中的对象。

我的问题是,如果我们在2个或更多节点的tomcat中实现集群,那些缓存的对象是否也被共享?那可能吗?我不认为是。可以使用 tomcat 增量管理器或备份管理器提供的 session 复制来共享 HttpSession 对象。但是内存中的东西也可以共享吗?

此外,正在运行的批处理作业会怎样?它们是否还会运行多次,因为集群中将有多个 tomcat 实例,并且每个实例都会触发该作业?那也是失败的。

有什么想法\想法吗?

最佳答案

如果你在内存中保存了一些东西,它不会被复制,除非你专门实现一些东西来将它发送到其他机器。每个 jvm 保持它们的内存彼此独立。

一般来说,如果你想要复制缓存,一个好的解决方案是使用 ehcache ( http://www.ehcache.org/ )。

关于批处理作业,这取决于您使用的库,但通常,如果您使用已建立的库(如 http://www.quartz-scheduler.org/ ),它应该能够确保只有一个实例运行该作业。也许您需要配置。

重要的是要进行测试,以确保您实现的任何解决方案都能真正发挥您的预期作用。

祝你好运!

关于java - Tomcat 内存缓存 - 集群上的复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48320143/

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