gpt4 book ai didi

java - 应用运行在多节点时,如何实现数据库更新的同步?

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

我是 J2EE 开发的新手,正在努力掌握一些基础知识。所以怀疑就像,假设我在数据库中的某个地方有一个 employee 表和一个增加 employee 表中的 salary 列的函数。

public synchronized IncreaseSalaryResponse increaseSalary(int empId, long raise);

在我的例子中,服务在两个节点(所以两个 JVM)上运行以实现高可用性。现在,如果同时进行两次调用以增加员工的薪水,并且如果它们命中不同的主机,则最后结束的函数调用的效果将反射(reflect)在最终薪水中。

DB 是否确保在其级别避免此类竞争条件?

如果不是,我的情况如何处理。

请提供想法。

最佳答案

这取决于您使用的 RDMS 是否跨国以及隔离级别。

根据维基百科,

Transactions in a database environment have two main purposes:

1- To provide reliable units of work that allow correct recovery fromfailures and keep a database consistent even in cases of systemfailure, when execution stops (completely or partially) and manyoperations upon a database remain uncompleted, with unclear status.

2- To provide isolation between programs accessing a database concurrently.If this isolation is not provided, the program's outcome are possiblyerroneous.

关于java - 应用运行在多节点时,如何实现数据库更新的同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28638370/

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