讨论:分布式环境中的服务以及事务

     最近在看SOA相关的东西,综合看下来,发现几乎所有教材都在讲解正常流程;但是个人感觉下来,觉得

SOA的实施真正的问题反而是在服务的治理方面。遗憾的是教程几乎都着眼于基于ACID的分布式事务——实际上在现实世界里面,比如在淘宝,EBay里面,这种强一致性的两阶段事务根本就是被抛弃的,例如淘宝,用的是Best Efforts 1 Phase Commit .也就是说,是一种最终一致性模型。 当然,在一个所谓的事务(或者原子服务)里面,涉及到的数据源可能是数据库,Message,也可能是其他服务的某个服务。既然是非强一致性(实际上,因为涉及到WebService或者Restful这种服务调用,想做到强一致性几乎也是不可能的),那么就必须考虑异常情况。这些异常的治理对于一个SOA是非常重要的。

     大家接下来可以考虑一下这种情形下的异常处理或者治理吧~ 

     先抛砖引玉,看到一篇文章,讲可以抽象出单独的异常处理的服务。但是感觉还是不够细,比如下面一个流程: 

     

       在上面的四步操作中,每步都有可能产生问题。那么在每一步的时候,应该是怎么处理的呢?

       当然也要考虑到,服务A本身就有可能是某个服务(例如T)的系列调用中的一个,A的结果可能对T的调用产生影响。大家在工作中有没有遇到过类似的案例,一般是怎么处理的呢?

       欢迎大家拍砖和分享。

       当然,如果这个场景大家觉得有问题,也欢迎完善场景。

       PS: Iteye貌似越来越冷清了,不知道还能不能像以前一样有一群同学积极参与。。。。

猜你喜欢

转载自michael-softtech.iteye.com/blog/1772411