有一个api负责充值手机号码。要首先使用top-up api,用户应该注册,并在该阶段向用户分配一些信用(余额)。当使用手机号码和充值金额调用api时,该金额将从特定用户帐户余额中减去(更新余额)。问题是,当一个用户在同一时间为x mobile和y mobile号码充值时。用java和mysql(数据库)处理此类事务的最佳方法是什么。
rqcrx0a61#
你有不同的方法来实现这一点。在我看来,最简单的方法就是用乐观的眼光:https://www.baeldung.com/jpa-optimistic-locking另一个更复杂的方法是使用演员。它可能会改变你的应用程序的架构和使用新的框架,但它肯定是有回报的。参与者接收事件(例如, BalanceUpdate )并确保所有消息都按顺序处理,每个用户可以有一个参与者,技巧是将与用户相关的所有消息根化为其参与者。检查akka或vert.x之类的框架
BalanceUpdate
1条答案
按热度按时间rqcrx0a61#
你有不同的方法来实现这一点。
在我看来,最简单的方法就是用乐观的眼光:https://www.baeldung.com/jpa-optimistic-locking
另一个更复杂的方法是使用演员。它可能会改变你的应用程序的架构和使用新的框架,但它肯定是有回报的。参与者接收事件(例如,
BalanceUpdate
)并确保所有消息都按顺序处理,每个用户可以有一个参与者,技巧是将与用户相关的所有消息根化为其参与者。检查akka或vert.x之类的框架