我们采用微服务架构,大多数情况下每个微服务都是独立的。但由于一些历史原因,我们必须从一个微服务中调用另一个微服务。
例如:以下方法是“Legal Service”的一部分。
例如:以下方法是“Legal Service”的一部分。
@Autowired
public ServiceManager UserServiceManager;
public void updateUserLegalData(){
//do db update of Legal info for the user
userServiveManager.setAcceptedLegal(true);
}
以上有两个数据库事务
,一个正在更新legalService数据库,另一个正在更新UserService数据库。请注意,userService是在单独的虚拟机上运行的微服务
。
我们发现情况是legal Service数据库已更新,但对userService的调用失败(内部服务器错误
)。这将导致应用程序处于不一致状态。我们该如何以推荐的方式解决这个问题?
谢谢