我是 J2EE 开发的新手,并试图掌握一些基础知识。所以疑问就像,假设我在数据库中的某处有一个 employee
表和一个增加 salary
表中 employee
列的函数。
public synchronized IncreaseSalaryResponse increaseSalary(int empId, long raise);
就我而言,该服务在两个节点(因此是两个 JVM)上运行以实现高可用性。现在,如果同时进行两个调用以增加员工的工资,并且如果它们遇到不同的主机,则最后一个函数调用将其效果反射(reflect)在最终工资中。
DB 是否确保在其级别避免此类竞争条件?
如果没有,在我的情况下如何处理这种情况。
请提供想法。
最佳答案
这取决于您使用的 RDMS 是否是跨国的以及隔离级别。
根据维基百科,
关于java - 当应用程序在多个节点上运行时,如何在数据库更新中实现同步?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28638370/