企业级支付系统微服务化,如何拆分微服务
企业级支付系统微服务化,如何拆分微服务

我们通过跟着我学微服务,什么是微服务?微服务有哪些主流解决方案?| 跟着我学微服务,你所在领域业务为什么要微服务化,何时微服务 | 跟着我学微服务,微服务带来了哪些挑战这三篇文章对微服务理论知识和优缺点有了较好的理解,今天我们来分析企业级支付系统微服务化以及如何拆分微服务,我们先看领域业务如何拆分为微服务,有哪些方法论
1 如何拆分微服务
1.1 基于DDD领域驱动原则
明确领域系统中的限界上下文
《领域驱动设计》中有个重要的概念限界上下文,一个特定的领域都包含多个限界上下文,每个限界上下文中的模型分成两部分,一部分不需要与外界通信,另一部分则需要。每个上下文都有明确的接口,该接口决定了他会暴露哪些业务能力给其它的上下文。
企业级支付系统这个特定领域中就有很多限界上下文,每个限界上下文都是能独立运行相互之间不受影响。支付系统网关、支付系统核心交易系统、账户系统、清结算系统、收单系统。如果收单系统要和清结算系统通信只能通过开发的接口与其通信,其它的实例(限界上下文)也是一样。下图基于该原则进行服务拆分

我们可以采用逐步划分上下文方式,在我们刚开始做微服务拆分时,不能很快的明确细粒度的服务,只能识别出一些粗粒度的限界上下文,而这些粗粒度的限界上下文可能包含嵌套的限界上下文。我们在业务和微服务演化的过程中逐渐将上下文的边界划分清楚,让各微服务更加的独立和自治。
1.2 单一职责原则
在进行微服务拆分时,遵循单一职责原则也是微服务化常用的方式,我们要尽量保证一个微服务只处理同一类型的业务,并保证其它微服务业务变更的情况下当前微服务不受影响。单一职责原则也是我们在做系统设计,面向对象编程时必须要遵守的一个原则。我们一起来看图理解单一职责原则,我们可以把大文旅业务线部分业务拆分为订单服务、支付服务、积分服务。另外可以采用聚合服务统一对外提供业务能力,由聚合服务把n个微服务流程聚合起来。

1.3 基于可靠性拆分
我们在做技术、业务、系统架构分析时,可以把需要长时间稳定对外提供服务的业务能力单独拆分出来,然后放在独立的微服务中,这种拆分方法叫做基于可靠性拆分原则。拆分出来的业务不再受边缘或其它业务的不稳定而影响一个组织机构核心的业务。我们可以基于下图来理解,验票、用户、支付业务在文旅行业是核心业务,如果用户购买了门票不能入园游玩那么会严重影响用户的体验,支付和用户微服务也是同样的道理。我们要把核心的领域对象拆分出来开发为单独的微服务,并进行集群部署,数据也需要独立的存储。

1.4 基于业务稳定性拆分
可以把高频迭代的服务单独的进行业务拆分,然后微服务化。业务稳定不经常变更的业务和功能单独的拆分形成微服务,这样我们就按照业务的稳定性进行服务的拆分。业务不经常变更的微服务不会受到高频迭代的服务影响。可以对照下图进行理解和分析

1.5 基于吞吐量原则拆分
领域对象中肯定有很多业务是高吞吐量的场景,我们可以按照一定的技术标准对高吞吐量的服务单独抽取出来,这时我们可以看到下图中相关服务,我们可以按照高吞吐和非核心场景进行划分。企业级支付系统中聚合支付和预付卡核心交易系统一定属于高吞吐量的服务,另外一个领域对象属于大文旅行业中的票务业务验票服务。大家在做拆分的时候结合自己的领域特性进行分析即可

1.6 基于演进式原则拆分
这种拆分原则在大部分的团队和组织都会用到,实际上我们的微服务拆分不会一步到位,好的架构也是随着业务复杂度、团队规模从小到大逐步演化过来的,所以该原则适合大部分领域和组织。我们在业务复杂度不是太高的时候拆分粒度不用太细,另外我们要结合开发团队规模进行微服务的拆分,不要就两三个团队微服务拆分粒度就很小。

2 现代企业级支付系统微服务化
2.1 企业级支付系统业务架构
在现代企业中标准的支付系统涵盖了以下几部分,第一部分为对外的渠道支付能力(微信、支付宝、银联、各大银行、第三方支付公司),第二部分为企业内部的卡券系统也就是我说的预付卡系统,预付卡系统中有独立的支付账户体系、第三部分清结算系统。

2.2 企业级支付系统微服务化
我们学习到现在已经知道如何拆分微服务的方法论了,接下来咱们基于企业级支付系统微服务整体技术方案图进行理解,大家可以思考此图采用了哪些拆分原则对支付系统领域业务进行服务拆分

大家可以在评论区留言说出你对微服务拆分的的理解,你们组织是如何对业务进行拆分,你负责过哪些业务领域的微服务化工作
欢迎大家关注我的项目实战内容itbeien.cn,一起学习一起进步,在项目和业务中理解各种技术。

欢迎沟通交流技术和支付业务,一起探讨聚合支付/预付卡系统业务、技术、系统架构、微服务、容器化。并结合聚合支付系统深入技术框架/微服务原理及分布式事务原理。加入我的知识星球吧

跟着我学微服务系列
01跟着我学微服务,什么是微服务?微服务有哪些主流解决方案?
贝恩聊架构-项目实战地址