java - 如何用Java处理mysql中的并发事务?

标签 java mysql transactions

有一个负责手机号码充值的API。要使用充值API,首先用户应该注册,然后该阶段为用户分配一些信用(BALANCE)。

当使用手机号码和充值金额调用 API 时,该金额将从特定用户的帐户余额中扣除(更新余额)。

问题是当用户为 X 手机充值并同时再次为 Y 手机号码充值时。

使用 JAVA 和 MySQL(数据库)处理此类事务的最佳方法是什么。

最佳答案

您可以通过不同的方式来实现这一目标。

  • 我认为最简单的方法是使用乐观的外观:https://www.baeldung.com/jpa-optimistic-locking
  • 其他更复杂的方法是使用 Actor。它可能涉及应用程序架构的更改和要使用的新框架,但这绝对是有返回的。 Actor 接收事件(例如,BalanceUpdate)并确保按顺序处理所有消息,每个用户可以有一个 Actor,并且技巧是将与用户相关的所有消息根植于他的 Actor 。检查 Akka 或 Vert.X 等框架

关于java - 如何用Java处理mysql中的并发事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52887457/

相关文章:

MYSQL根据列字符串将值拆分为多列

mysql - Innodb 事务或表锁?

java - 在 Jackson 构造函数中使用自定义对象

java - 如何求距矩形中心的垂直和水平距离

java - 如何格式化java文本编辑器项目中的文本?

java - 为什么除非使用事务,否则删除表在 SQLServer 中不起作用?

java - 使用 Spring Data Repository 限制事务数量

java - Artifact 部署 Tomcat 9 期间的应用程序错误

php - 用PHP和MYSQL故障动态产品菜单

PHP 连接 MySQL 数据库时出错