【发布时间】:2020-01-15 07:39:07
【问题描述】:
我正在使用 Play Framework 和 MariaDB 编写一个 Web 应用程序。用户在他的帐户上有余额,可以通过对应用程序的请求来消费。今天,当用户向应用程序发送 2 个请求时,无法确定第二个请求会从第一个请求中获取余额状态。导致数据不一致。
处理这个问题的“默认”方式是什么?在每次更新余额之后/之前使用锁定列更新和读取? MariaDB 有内置的锁机制吗?重新考虑异步请求?
感谢您的建议。
【问题讨论】:
-
交易有什么问题?
-
我将事务视为在一个事务中为多个数据库请求保持数据一致性的一种方式。如果一个请求失败,整个过程回滚。在这里,我实际上必须处理多个 HTTP 请求。我已经在一个 HTTP 请求期间将 DB 事务用于多个 DB 请求。
-
这实际上是我体验它们的方式。这就是我问这个问题的原因。
-
事务还可以确保(取决于隔离级别)一切都像隔离操作一样完成(也就是说,在事务期间不会“允许”另一个冲突操作发生)
标签: mysql sql playframework mariadb