国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > 综合技术 > [置顶] 电子商务系统的设计与实现(六):账务系统服务化的好处和坏处

[置顶] 电子商务系统的设计与实现(六):账务系统服务化的好处和坏处

来源:程序员人生   发布时间:2015-01-13 08:21:00 阅读次数:2352次
   账务系统服务化,参考了公司Boss的设计。不过,随着思考的深入,发现账务系统服务化也有很多坏处,对1个中小型公司,小技术团队,中小型网站来讲。

  坏处
1.开发本钱增大。
  服务化,需要新建1个项目。开发调试的时候,必须保证账务系统1直在运行,因此,部署的时候,账务系统也需要单独部署1次。
2.跨系统事务处理起来比较麻烦。
  目前,投标的时候,立即需要支付,即把投标和支付2个跨系统的服务,想作为1个事务。但是,目前又没有散布式事务的基础框架。
因此,折衷的办法是,把账务这类不可回滚的操作,放在最后1个履行,如果失败,就让tender投标回滚。

 但是,我发现投标和支付可以不作为1个事务。我们在电商网站购物的时候,1般都是先购物,生成定单,然后再支付,即从业务上就把某个业务和账务操作分离了,不需要在1个事务中履行。

因此,如果我们非常把账务服务化,对我们目前比较简单的业务场景,可以不需要跨系统的事务,在业务层面,把投标和支付分开就行了。

 但是,如果我们非要实现跨系统事务呢。固然是可以实现的。

 听说,支付宝之类的大型互联网公司,有自己的事务框架,单独的事务服务器。1个事务,常常有1个发起方和多个参与方,参与方成功或失败,都会发送“回执通知”要求。根据这些要求,最后保障事务。另外呢,事务也可能不是实时去处理的,可能会把1些要做的事情,缓冲到数据库中。然后再,定时处理这些事情,可能会需要事务。

在实际的购物网站中,跨系统事务是肯定存在的。比如,买家支付完成后,购物平台1方面要通知买家成功支付信息,另外一个方面,要通知卖家可以发货了。

好处
1.方便调用接口和协作。
   多个系统之间,通过接口,可以很好地协作。
2.方便多个团队同时开发。
  比如,购物网站,账务系统和主体商城商品可以由2个团队完成。二者的开发,相互不影响。只要把接口定义好,保证接口最后的实现是符合规定的就能够了。

本系统的实际情况
我目前正在做的这个购物系统,范围比较小,开发人员也很少,把账务单独做出1个服务化的系统,感觉太麻烦了。另外,如果需要把账务和1些业务放在1个事务中,事务的实现也更简单。

有1个业务是可以肯定的,购物生成定单和支付相分离,是目前比较主流的做法。

感悟
之前都是在中小型公司工作,Web系统的业务相对照较简单,不太清楚淘宝等大公司的技术做法。对很多业务场景,根本没有斟酌过技术实现。还好,这次遇到了之前在支付宝等大公司工作过的boss,从他那里了解到了,很多业务需求和技术思想。至于技术的实现,对我们1直弄技术的人来讲,不是太难,最少,开源的技术实现已很多了。
 CSDN2014博客之星评选,帮小雷投1票吧

http://vote.blog.csdn.net/blogstar2014/details?username=fansunion
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生