SpringCloudAlibaba之图文搞懂微服务核心组件在企业级支付系统中的应用
SpringCloudAlibaba之图文搞懂微服务核心组件在企业级支付系统中的应用

跟着我学微服务,基于企业级项目系列前4篇文章我们已经把什么是微服务、微服务有哪些技术解决方案、为什么微服务、哪个阶段微服务、微服务有哪些挑战、如何拆分微服务进行了一一分析。接下来我们正式进入到结合领域业务、技术方案和代码落地阶段
1 企业级支付系统完整业务架构图
我们在分析SpringCloudAlibaba各大组件和领域业务的关系之前,我们必须把企业级支付系统领域对象进行拆分,拆分之后我们再基于领域对象分析微服务各大 组件在业务中的具体应用。我们结合下图一起来掌握企业级支付系统中有哪些核心业务对象,企业级支付系统业务对象大致分为三层分别为用户层、中后台、领域层,中后台的服务主要为管理系统(运营人员+商户)和网关系统。领域层为支付系统的核心领域业务,其中包含聚合服务(对外支付机构+对内预付卡支付)、预付卡核心交易服务、清结算服务和账户服务
-BSmjud0N.png)
2 SpringCloudAlibaba各大组件在支付系统中的应用
结合下图我们看各大组件相互之间的关系,以及在整体业务中的什么位置应用了什么组件,我们使用各大组件进行服务调用、应用过载防护、服务治理、分布式事务管理等等

2.1 注册中心组件
用于服务的注册与发现,管理微服务的地址信息。Spring Cloud Alibaba解决方案中使用的注册中心组件为Nacos,Nacos的介绍自行到官网查看,今天不展开讨论,中后台中的交易系统网关部分和领域层都会用到注册中心组件。我们结合下图来理解注册中心组件实现原理以及它干了什么事情

2.2 配置中心组件
用于集中管理微服务的配置信息,可以动态修改配置而不需要重启服务。Spring Cloud Alibaba方案中使用Nacos Config对所有应用的配置信息进行统一管理。我们在配置中心的管理后台对各应用的相关配置进行管理配置,比如数据库和各中间件的的连接参数

2.3 远程调用组件
用于在不同的微服务之间进行通信和协作常用的方式有Restful API,具体实现组件有RestTemplate、Feign。另外我们也可以使用RPC(远程过程调用)具体实现框架Dubbo、gRPC

2.4 API网关组件
作为微服务架构的入口,统一暴露服务,并提供路由、负载均衡、安全认证等功能。具体技术实现有Spring Cloud Alibaba Gateway、Apisix。企业级支付系统中使用API网关作为整体系统的流量入口

2.5 分布式事务组件
保证跨多个微服务的事务一致性和原子性操作,Spring Cloud Alibaba中的Seata提供分布式事务一致性解决方案。我们可以使用Seata中的 AT、TCC、SAGA 和 XA 事务模式实现对事务的管理。在预付卡系统账户服务、支付交易服务会产生跨服务的事务,我们会基于Seata组件对分布式事务进行管理,确保卡账户系统和支付交易系统事务的一致性。

2.6 熔断器组件
用于防止支付系统微服务之间的故障扩散,提高系统的容错能力。Spring Cloud Alibaba中熔断器组件实现有Sentinel、Resilience4j,后续在代码实现中我们会基于Sentinel实现

2.7 限流和降级组件
用于防止微服务过载,对请求进行限制和降级处理。Spring Cloud Alibaba中Sentinel组件实现对微服务的保护,可以使用它实现限流和降级功能。我们在支付系统的核心服务都会进行微服务的过载保护,使用限流和降级策略

2.8 分布式追踪和监控组件
用于跟踪和监控微服务的请求流程和性能指标,我们可以使用SkyWalking、Sentinel Dashboard对分布式系统应用实现追踪和监控。

2.9 消息中间件
Spring Cloud Alibaba默认集成了RocketMQ,我们在异步处理、应用解耦、流量削峰、数据推送等场景都可以使用RocketMQ进行实现。在支付系统中我们会结合RocketMQ实现下游商户支付结果通知等功能,我们可以结合下图来理解RocketMQ的常见应用场景

欢迎大家关注我的项目实战内容itbeien.cn,一起学习一起进步,在项目和业务中理解各种技术。

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

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