最近在学习微服务的相关知识,微服务的远程调用需要考虑异常的处理和相应的补偿机制。
进一步思考,其实应用服务器和数据库服务器也是分布式部署的微服务架构,应用服务器通过JDBC去远程调用DBMS。
这就会出现标题中描述的问题:当应用服务器通过远程调用DBMS后,DBMS执行成功,应用服务器因为网络异常,并没有收到成功的信息,所以应用服务器认为事务执行失败,这就出现了数据不一致的情况,比如应用服务器在转账失败后重试一次,这样就造成了转账了两次的BUG等等。
首先题主思考这种情况会出现吗?如果出现了应该怎么处理?
谢谢