Skip to content
zhengyangyong edited this page Jul 3, 2018 · 17 revisions

欢迎关注ServiceComb Java Chassis脚手架项目,这个项目将展现如何使用ServiceComb Java Chassis一步一步构建一个完整的CRM系统。

本Wiki会提供一系列文章,详细阐述系统构建过程的细节,您也可以还原代码从无到有,例如“2.在用户服务中添加认证(0.0.2)”,末尾小括号里的就是分支版本,签出0.0.2-SNAPSHOT分支,即可将代码恢复到文章描述的阶段。

背景

您经营着一家房地产开发商,销售房产,迫切需要一套销售系统,考虑到微服务的优势,您决定使用ServiceComb Java Chassis作为微服务开发框架。

业务流程

用户前来购买购买产品(房产),首先需要登记用户信息,并缴纳一定数量的定金,待交易当日,挑选心仪的产品(房产),支付尾款,完成交易。

服务拆分

系统构成

  1. 前端UI服务:用户交互界面;
  2. Edge服务:很多时候也被称为API网关(API Gateway),负责集中认证、动态路由等等;
  3. 用户服务:提供用户信息管理服务,这里保存这用户的账号和密码,负责登录和认证;
  4. 产品(房产)服务:提供产品管理服务,保存着房产的信息诸如价格、是否已售出等信息;
  5. 支付服务:提供交易时支付服务,模拟对接银行支付购房尾款;同时由于房产是非常昂贵的产品,交易前需要收取一定的定金,因此每一个用户都会保存已缴纳的定金金额
  6. 交易服务:提供产品交易服务,它通过编排调用将整个交易流程串起来,交易服务中有两个流程:

A. 定金支付

  • Step1:通过用户服务验证用户身份;
  • Step2:通过支付服务请求银行扣款,增加用户账号内的定金。

B. 购房交易

  • Step1 :通过用户服务验证用户身份;
  • Step2 :通过资源服务确定用户希望购买的资源(房产)尚未售出;
  • Step3 :通过资源服务标记目标资源(房产)已售出;
  • Step4 :通过支付服务请求扣减定金账号内的定金,以及银行扣剩下的尾款;

最后两个步骤需要保证事务一致性,其中Step4包含两个扣款操作。

参考

轻松微服务系列:从一键构建微服务和DDD设计开始