我是 J2EE 开发的新手,并试图掌握一些基础知识。所以疑问就像,假设我在数据库中的某处有一个 employee 表和一个增加 salary 表中 employee 列的函数。

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

就我而言,该服务在两个节点(因此是两个 JVM)上运行以实现高可用性。现在,如果同时进行两个调用以增加员工的工资,并且如果它们遇到不同的主机,则最后一个函数调用将其效果反射(reflect)在最终工资中。

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

如果没有,在我的情况下如何处理这种情况。

请提供想法。

最佳答案

这取决于您使用的 RDMS 是否是跨国的以及隔离级别。
根据维基百科,

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

10-10 06:03