应用程序在多台机器上部署,且数据源只有一个,在高并发的情况下,如何保证数据的准确性?

发布于 2022-09-03 13:24:58 字数 198 浏览 18 评论 0

程序伪代码:

// 读取账户信息,并且余额加100
Account account = findAccount();
account.setBalance(account.getBalance() + 100);
updateAccount(account);

这个应用程序在多台机器上部署,如果保证数据的准确性。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

酒几许 2022-09-10 13:24:58

事务,然后加悲观锁或者乐观锁

北音执念 2022-09-10 13:24:58

对这种情况,可以直接改下逻辑,不要先set再update, 直接传要修改的值 update XXX set balance = blance + change,更复杂的只能用事务了,甚至分布式事务。。。

参考:
有个东西叫幂等 https://www.zhihu.com/questio...

深居我梦 2022-09-10 13:24:58

单写库,可以利用数据库的事务的隔离性来解决啊。 而且计算不要在应用层,要在DB中。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文