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

账务系统服务化,参考了公司Boss的设计。不过,随着思考的深入,发现账务系统服务化也有不少坏处,对一个中小型公司,小技术团队,中小型网站来说。

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

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

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

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

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

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

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

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

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

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

http://vote.blog.csdn.net/blogstar2014/details?username=fansunion

时间: 2025-01-10 14:00:09

电子商务系统的设计与实现(六):账务系统服务化的好处和坏处的相关文章

对账系统产品设计(一)

我是做技术的,为什么会要写产品设计呢?就像一句俗话"久病成医",当你负责一个系统足够久了,可能你就懂的比较多了.我想把自己遇见的听见的做一个系列,算是对自己过去工作的总结. 本文的基调是,少专业术语,全用大白话,一定要把东西说的通俗易懂. 本系列的第一篇,会说一说对账系统的框架是什么样子的,都有什么. 对账是做什么呢?说起来很简单,通俗讲就是,你该收到的和你真收到的是否一致,你该给的和你真给的是否一致.够通俗吗?如果套用到实际例子中,银行和支付系统的收单对账就是,你该收到的和银行给你是

秒杀系统架构设计

秒杀活动的用户量可能是网站平时正常访问量的数百甚至上千倍,网站如果为了秒杀时的最高并发量而设计部署,就需要比正常运营多的多的服务器,而这些服务器在绝大部分时候都是用不着的,浪费惊人.所以秒杀业务不能使用正常网站的业务流程,也不能与正常网站业务共用服务器,必须设计部署专门的秒杀系统. 秒杀系统所面对的技术挑战: 1.对现有业务造成冲击 2.高并发下的应用.数据库负载 3.突然增加的网络及服务器带宽 4.直接下单 秒杀规则是到点了才能下单,而下单页面也只是一个普通的url,如果得到这个url则不用等

基于JSP的学术交流论坛系统的设计与实现

目 录 摘要 I 关键词 I Abstract I Key words I 1前言 1 1.1课题研究的目的及意义 1 1.2国内外研究现状 1 1.3本文的工作 2 2系统分析 3 2.1可行性分析3 2.2需求分析3 2.2.1需求分析概述3 2.2.2任务概述3 2.2.3会员用户4 2.2.4版主4 2.2.5管理员4 2.3开发工具以及相关技术简介5 2.3.1相关工具简介5 2.3.2相关技术概述5 2.4系统的数据流图7 2.5用例图8 3总体设计9 3.1系统架构设计9 3.1.

高考志愿填报参考系统的设计与实现 文献收集

1.高考志愿填报分析系统的设计与实现 2.高考志愿智能填报系统的设计与实现 3.基于大数据的高考志愿推荐系统的设计与实现 4.基于B/S模式高考志愿填报辅助管理系统的设计与实现 5.基于数据分析的高考志愿决策模型研究 6.高考志愿模拟填报App设计与实现 7.江苏省高考志愿填报辅助系统的设计与实现 8.基于Spark的高考推荐系统设计与实现 9.基于商务智能的高考志愿填报指导系统设计与实现 10.高考志愿填报关键技术研究及系统实现 11.基于本体的高考志愿填报辅助系统的设计与实现 12.数据挖掘

电子商务系统的设计与实现(五):账务系统的功能接口设计

电商系统.p2p网贷系统.第三方支付都可以有自己的账务系统,账务系统与用户系统可以完全独立,不需要用户ID等信息,只提供给其它系统若干接口.服务可以用WebService的方式实现,对内提供服务非常方便,调用接口,就要调用普通的API一样.也可以做成HTTP的方式,外部使用相对麻烦一些.疑问:WebService提供的接口,可以直接用HTTP的方式调用么? 账务系统的功能接口设计 1.开户  可选输入:用户ID.账户资金类型(人民币.美元)  功能描述:创建一个账户.  理论上不需要存入用户的I

电子商务系统的设计与实现(十一):数据库设计

用户相关 malling_user:前端商城系统的用户,用户名.密码等 malling_user_delivery_address,用户的收获地址,一个用户可以有多个收获地址 malling_admin_user:后端系统的用户,与前端系统没有关系 malling_admin_role:后端系统用户的角色,超级管理员.管理员等 malling_admin_user_role:后端系统用户和角色的关联 账务相关  malling_account:用户的资金账户,账户号.可用余额.冻结余额等 mal

电子商务网站的设计与实现(三):四大子系统,登录-账务-前端-后端

1.登录系统   功能:响应用户的登录请求.   用Cookie实现Session,Redis存储Session数据.   登录服务化,响应HTTP或HTTPS格式的请求.       具体做法,可以参照boss的做法. 上述做法目标有2个:  a.登录系统,单独拿出来,可以供一个项目的多个系统复用,也包括今后其它项目复用.  b.Cookie实现Session,而非Java自带的Session,更容易做分布式部署和访问,也方便跨系统单点登录. 2.账务系统  功能:开户.查询.交易(需要冻结账

电商峰值系统架构设计--转载

1.1 系统架构设计目录 摘要:双11来临之际,<程序员>以“电商峰值系统架构设计”为主题,力邀京东.当当.小米.1号店.海尔商城.唯品会.蘑菇街.麦包包等电商企业,及商派.基调网络等服务公司,分享电商峰值系统架构设计的最佳技术实践. 自2009年11月11日,淘宝商城(现名天猫)拉开网购狂欢节的序幕,各大电商的促销浪潮此起彼伏.此时的电商大战不仅是价格之争,更是技术的较量.如何设计电商峰值系统来更好地满足用户蜂拥而至的访问,如何在海量数据处理中实时发现有效信息并转化为商机,成为众多电商企业密

38、生鲜电商平台-会员积分系统的设计与架构

说明:互联网平台积分体系主要用于激励和回馈用户在平台的消费行为和活动行为,一个良好的积分体系可以很好的提升用户的粘性及活跃度. 一.互联网平台积分体系设计必要性 互联网平台积分体系是一个独立.完整的系统模块,主要用于激励和回馈用户在平台的消费行为和活动行为,通过积分体系可以激发与引导用户在平台的活跃行为,逐步形成用户对平台的依赖性和习惯性,提升用户对平台的黏度和重复下单率. 积分体系在保持系统独立性的同时,又与平台会员系统.商品系统.订单系统等具有紧密的关联性,积分体系的规划设计需与平台其他系统