gpt4 book ai didi

java - 在java中跨多个进程更新单个对象

转载 作者:搜寻专家 更新时间:2023-10-30 20:22:08 25 4
gpt4 key购买 nike

几个关系数据库表由驻留在进程中的单个对象缓存管理。当缓存被提交时,表被更新。数据库关系表由常规 SQL 查询更新,而不是像 hibernate 这样更高级的东西。

最终,其他进程在不相互通信的情况下开始修改这个对象,即每个进程都会初始化这个对象(从数据库读取)并更新它(提交到数据库),其他进程不会知道它保留过时的缓存。

我必须修复这个工作流程。我想到了几种方法。一种是让这个对象成为一个mBean。因此,该对象将驻留在一个进程中,并且每个进程最终都会通过调用 mBean 方法来修改该进程中的对象。

但是,这种方法有几个问题。1) 此缓存返回的每个对象都是一个 mBean,这可能会使方法调用非常繁琐。2)还要求每个进程都应该看到数据库的一致数据模型(缓存),并且如果可能,它应该将其内容合并到数据库中。 (如交易)。如果数据库被其他进程显着更新,则合并失败是可以的。

Java中有哪些技术可以帮助解决这个问题?

最佳答案

你应该看看Terracotta .他们拥有使多个 JVM(可以位于不同服务器上)看起来统一的技术。如果您在一个 JVM 上更新对象,Terracotta 将以一种安全的方式在集群中的所有 JVM 上透明地更新实例。

关于java - 在java中跨多个进程更新单个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1942175/

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