我有5个帐户微服务实例,它将资金从帐户A转移到帐户B,然后更新Postgres数据库中的数据。我的问题是
用户向帐户服务发送了五个请求,我的所有微服务都并行工作,每个请求都以所有5个服务的方式进行,但现在用户帐户中没有足够的余额,我已经在检查用户是否有足够的余额。
但是在2个请求之后,用户没有足够的余额,所以我很困惑如何在请求转到同一微服务的另一个实例之前先检查这一点并实现数据一致性。
我也希望有建议和其他方法
这个问题很难解决。您可以使负载平衡器使用粘接会话,以便单个用户请求始终转到单个实例。无论哪种方式,您都需要确保实现了db锁,以便在任何时候只有一个实例可以以应用程序一致的方式更新一行。