基于支付场景下 的微服务改造与性能优化

九九玩 admin 评论

本文节选自《高可用可伸缩微服务架构:基于Dubbo、Spring Cloud和Service Mesh》一书,程超等著,由电子工业出版社博文视点出版,已获得授权。近年来微服务架构已经成为大规模分布式架构的主流技术,越来越多的公司已经或开始转型为微服务架构。本书不以某

本文节选自《高可用可伸缩微服务架构:基于Dubbo、Spring Cloud和Service Mesh》一书,程超等著,由电子工业出版社博文视点出版,已获得授权。近年来微服务架构已经成为大规模分布式架构的主流技术,越来越多的公司已经或开始转型为微服务架构。本书不以某一种微服务框架的使用为主题,而是对整个微服务生态进行系统性的讲解,并结合工作中的大量实战案例为读者呈现一本读完即可实际上手应用的工具书。

一、支付场景的介绍

本章主要介绍基于支付场景下的微服务实践,微服务体现的真谛最终还是要理解业务,只有深入理解了业务才能结合领域来重新定义微服务,下面就简单介绍一下互联网支付。

常见的互联网支付的使用场景主要有以下几种。

刷卡支付:用户展示微信钱包内的“刷卡条码/二维码”给商户系统,扫描后直接完成支付,适用于线下面对面收银的场景,如超市、便利店等(被扫,线下)。

扫码支付:商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”来完成支付,适用于PC网站支付、实体店单品等场景(主扫,线上)。

公众号支付:用户在微信中打开商户的H5页面,商户在H5页面通过调用微信支付提供的JSAPI接口调用微信支付模块来完成支付,适用于在公众号、朋友圈、聊天窗口等微信内完成支付的场景。

WAP支付:基于公众号基础开发的一种非微信内浏览器支付方式(需要单独申请支付权限),可以满足在微信外的手机H5页面进行微信支付的需求!简单来说,就是通过PC、手机网页来实现下单支付(俗称H5支付)。

App支付:商户通过在移动端应用App中集成开放SDK调用微信支付模块来完成支付。

网关支付:用户需要开通网上银行后在线完成支付,主要对象是国内银行借记卡和信用卡,是银行系统为企业或个人提供的安全、快捷、稳定的支付服务。

快捷支付:快捷支付指用户购买商品时,不需开通网银,只需提供银行卡卡号、户名、手机号码等信息,银行验证手机号码正确性后,第三方支付发送手机动态口令到用户手机号上,用户输入正确的手机动态口令即可完成支付。

在支付场景下实现微服务的最终目标:能够将单体支付系统按业务进行解耦,利用微服务生态来实施支付系统,并且能够保证系统的可靠性和并发能力,建设完整的运维体系以支撑日益庞大的微服务系统。

二、支付业务建模和服务划分

我们在第2章介绍了领域建模的相关知识,由此可以知道几个关键词:领域、子域、限界上下文。有些读者对领域、子域的概念比较容易理解,但是限界上下文就理解得比较模糊,这里再对这个关键词简单做一下介绍。

可以把限界上下文理解为:一个系统、一个应用、一个服务或一个组件,而它又存在于领域之中。举个生活中的例子:我每天上班都会坐地铁,从家里出发到单位需要换乘三次地铁,分别是5号线、8号线和2号线。那么地铁就可以理解为限界上下文,从5号线走到8号线这个过程就是领域事件,而为了到达目的地中间换乘地铁,这个过程叫作上下文切换。

再回到支付业务中,该如何根据业务和领域相关知识来划分服务呢?我们以一个业务架构示例来讲解,如图11-1所示。

当我们在工作中遇到一个完整的业务场景时,首先需要识别出一共有哪些领域,根据大的领域再来划分子域,最后将具有相同领域或子域的限界上下文进行归类。正确识别出领域其实是比较难的,需要设计人员前期对业务有大量的调研,有比较深入的了解后才能识别领域。

从图11-1中可以看到整个业务架构图分两大部分,中间的是业务核心领域,两边的是支撑子域。

我们重点介绍中间的部分,每一层就是一个领域,领域中又包括特定子域。

(1)对接业务层:主要是一些业务系统对接支付系统,包括电商业务、互金业务和一键支付三个限界上下文。

(2)统一接入网关层:主要功能是对请求入口进行加解密、分流、限流和准入控制等。

基于支付场景下 的微服务改造与性能优化

图11-1

(3)产品服务层。

收银台:包括两个限界上下文,分别是PC收银台和手机手银台。

商户:包括四个限界上下文,分别是分账、鉴权、担保和代扣。

个人:包括两个限界上下文,分别是充值和提现。

(4)业务服务层:包括五个限界上下文,分别是交易服务、支付服务、退款服务、计费服务和风控服务。

(5)基础服务层。

网关:包括三个限界上下文,分别是支付网关、鉴权和支付路由。

资金处理平台:包括四个限界上下文—对账、清结算、备付金和会计。

三、支付场景下微服务架构的详解与分析

使用微服务的核心是业务,没有业务进行支撑的微服务是“虚的”,但只有业务与微服务相结合的思想而没有微服务的架构体系也是无法将微服务落地的,所以本章重点介绍要做好微服务还需要完善哪些技术架构。

下面我们将以一个实际工作中的案例为出发点,分析在中小公司中如何落地微服务。如图11-2所示,左半部分是微服务的业务架构,右半部分是微服务的基础技术架构。

基于支付场景下 的微服务改造与性能优化

图11-2

3.1业务架构分析

根据前面介绍的如何根据业务来划分领域可以看到,整个业务架构部分已经完成了领域的划分,我们重点来看服务层。服务层是一个核心域里面包含了多个子域,每个子域都是按功能进行划分的,比如支付中心子域里面包括支付服务、路由系统和银行渠道等限界上下文,这些限界上下文是一个服务,还是一个系统呢?这就要结合康威定律来综合考量团队的规模,小公司创业初期研发人员少,可以将支付中心子域定义为限界上下文,里面包括三个独立模块,分别是支付服务模块、路由模块和银行渠道模块,待人员逐步增加到一定规模后,多个项目组同时修改一个支付中心限界上下文会导致互相影响的时候,就需要将支付中心上升为一个业务领域,而将之前的三个独立模块拆分为独立系统,由不同的项目组分别接管,各自维护各自部署,如图11-3所示。

基于支付场景下 的微服务改造与性能优化

图11-3

基于支付场景下 的微服务改造与性能优化

杏彩登录_金蟾蜍捕鱼:基于支付场景下 的微服务改造与性能优化

喜欢 (0) or 分享 (0)
发表我的评论
取消评论

表情

您的回复是我们的动力!

  • 昵称 (必填)

网友最新评论