海量并发高度扩展的交易中台架构设计与实践——阿里云 MVP孙玄

简介: 阿里云MVP,奈学教育CEO孙玄为大家带来海量并发高度扩展的交易中台架构设计与实践的介绍。内容包括中台模式和微服务架构的关系,海量并发的业务中台架构如何设计与实践,以及秒级新业务接入的交易中台如何设计和实践。

快速成为顶级架构师的内功修炼

查看直播——海量并发高度扩展的交易中台架构设计与实践

一、中台模式和微服务架构的关系

首先讲讲中台模式是怎么来的。在很早之前,芬兰的一家非常著名的游戏公司叫Supercell。

这家公司在开发游戏的时候,能以非常快的速度开发出一个游戏。这个游戏其实就是一个业务。

这个业务之所以能够开发出来,一定会有一些公共的东西来进行赋能和支持。

Supercell以小前台的方式组织了若干个开发团队。每个团队包含开发一款游戏所需的各种角色,可以快速决策、快速开发。基础设施、游戏引擎、内部开发工具和平台则由类似 “部落” 部门提供。部落可以根据需要扩展为多个小分队,但各个小分队都保持共同的目标。部落本身并不提供游戏给消费者,它只提供一些能力,赋能给你的前台业务。这里说的部落,在我看来其实就是一个中台。**游戏本身就是小前台。
**
image.png

对于任何一家公司而言,中台可以分为技术中台,业务中台,算法中台和数据中台。

今天我们主要讲业务中台。业务中台的落地,可以采用单体架构,微服务架构等等。大家可以看到,微服务架构仅仅是业务中台落地的一种典型技术架构实现方式。

二、海量并发的业务中台架构如何设计与实践

今天我们要讲整个的业务中台,它是基于微服务架构的方式实现。在微服务架构模式里面,哪些是属于你的业务中台,哪些属于你的前台,哪些是公共的,哪些是个性化的东西,我们要把它区别出来,这是一个很关键的因素。

微服务架构分为几部分。

第一部分是网关层。很显然它就做一些和网关相关的事情。比如说通用参数的一个检查,路由的一些转发,协议的一些转化。它是一个服务的概念。

第二部分是业务逻辑层。对于电商来说,一定会有自己的业务层。比如说,APP有APP的业务逻辑,小程序也有小程序专门的一些业务逻辑,但它们都要有一个商品发布逻辑层。它属于第三部分,公共逻辑层。在这一层里面,把一些公共的东西全部下沉下来,沉淀在这一层里面。

第四部分是数据访问层,包括商品数据访问层,搜索数据访问层,推荐数据访问层,交易数据访问层。

第五部分是持久化层。每一层都是由一个服务构成,当然,每一层可能有多个进程,这就是整个的业务架构逻辑。

在这个架构里面,除业务逻辑层以外,其他属于中台。具体来说,公共逻辑层,网关层,数据访问层是业务中台。持久化层,注册中心,配置中心,是技术中台。而业务逻辑层则属于业务前台。我们可以通过这样的方式来构建业务架构逻辑。

image.png

构建完以后,我们把业务层面公共能力下沉为服务,并做好服务连接。做好公共服务的全连接,使得前台业务一键接入

举个例子,现在来了一个APP,那么它最终需要接入的中台是比较多的,比如说你的网关层,你的公共逻辑层,数据访问层,我们能不能做到业务中台设计的时候能让业务很方便的去接入。另外一块,做好公共服务的一个全连接,它有很多的服务,商品的列表页,商品的详情页,商品的发布服务,搜索服务,推荐服务等等。新的一个业务,要去接入这些服务的话,其实是非常繁琐的。

我希望你这时候能给我一个proxy,帮我去连接好这些东西。我的业务接入的时候,一键接入 proxy就好了,这样的话,业务接入的成本是非常低的。

所以在这种情况下,首先,得对你的业务做一个标识,做一个ID化。标识的目的是让你做一个标准化,有了标准化以后,接下来接入的时候,你的整个业务只需要完成一个填空题就好了。怎么样做一个ID标识,往往可以给你的业务做一个三级的分类。

比如说,一级业务是电商,二级业务是手机,三级业务是好货。当然,你最终需要几级体系,取决于你的业务特点的需求。这是一套标准化的东西,我们要去构建这样的一二三级的一个业务。我们也是按照这样的思路去构建我们的这样一个生态。

image.png

三、秒级新业务接入的交易中台如何设计和实践

交易中台有很多流程,或者说很多状态。比如说,已支付,已发货,退款,拒绝退款等等。在这种情况下,我们如何方便地让多个业务接入。

多个业务之间有一个28原则,可能80%的流程都是公共的,只有20%的流程是有差异的。在这种情况下,交易的流程该怎么去设计,是一个比较好的问题。如下图所示,以电商订单状态为例,退款在发货前和发货后,流程完全不同。

image.png

相似业务有两套业务流程,这种情况是很常见的。在业务初创期,可以硬编码,通过IF和ELSE语句定制化链路,分别针对不同的流程。

image.png

随着业务量越来越多,复杂度会很大,定制化链路不一定可行。在这种情况下,我们要运用架构设计的哲学:抽象。可以对业务场景做一个抽象:状态和动作。于是,一个新的解决方案应运而生,有限状态机(FSM):有限状态以及在状态之间转移和动作等行为的数学模型。于是,可以定义交易中台普适的FSM,定义状态机的一个框架,以及抽象业务场景的状态角色。首先,有两个状态,一个是初始状态,一个是目标状态。初始状态和目标状态之间有转移关系。第二,定义角色。不同角色有不同的操作权限,比如卖家、买家、系统、客服。第三,定义操作,对应事件。第四,定义Handler,事件操作相应的Action实现。其中,一个事件定义为:角色A,在初始状态S1下,执行OP1操作,将使用handler来处理业务逻辑,执行成功将状态设置为目标状态S2

image.png

定义状态机框架以后,接下来就是FSM的落地。本质上是一个状态转移表的定义。如下图所示,状态转移表里面有这样几个角色。第一个是op_type,代表具体的一个操作,只不过我们把这些action变成了一个具体数字。第二个是role,代表你是买家,卖家,还是客户。第三个是source_status,即源状态。第四个是target_status,即目标状态。第五个是handler,代表从源状态到目标状态以后要执行什么操作,比如说拒绝订单的行为。

如果你是Java生态的,可以通过Spring State Machine框架来实现。如果你是其他语言的,可以通过其他语言的框架进行实现。假设我们现在已经有了这样一张表,当一个新的业务需要接入的时候,只需要配置状态转移表,以及新handler业务处理的编写,基本上可以秒级完成业务接入。

image.png

回到刚才C2C的交易和B2C的交易,假设我们已经有了中台能力,通过中台FSM能力,只需要把状态图画出来,相应的状态流转表的配置就有了。handler只需要关注当前操作的业务逻辑,极大的解耦状态和业务。所以实际过程中,不用去烦恼具体的一些事情。

image.png

关键词:微服务架构,中台模式,业务中台,交易中台,有限状态机

快速成为顶级架构师的内功修炼

查看直播——海量并发高度扩展的交易中台架构设计与实践

目录
相关文章
|
25天前
|
负载均衡 测试技术 持续交付
高效后端开发实践:构建可扩展的微服务架构
在当今快速发展的互联网时代,后端开发扮演着至关重要的角色。本文将重点探讨如何构建可扩展的微服务架构,以及在后端开发中提高效率的一些实践方法。通过合理的架构设计和技术选型,我们可以更好地应对日益复杂的业务需求,实现高效可靠的后端系统。
|
25天前
|
监控 持续交付 API
构建高效可扩展的微服务架构
在当今快速迭代和竞争激烈的软件市场中,构建一个高效、可扩展且易于维护的后端系统变得尤为重要。微服务架构作为一种流行的分布式系统设计方式,允许开发者将应用程序划分为一系列小型、自治的服务,每个服务负责执行特定的业务功能。本文将探讨如何利用现代技术栈搭建一个符合这些要求的微服务架构,并讨论其潜在的挑战与解决方案。我们将涵盖服务划分策略、容器化、服务发现、API网关、持续集成/持续部署(CI/CD)以及监控和日志管理等关键主题,以帮助读者构建出既可靠又灵活的后端系统。
|
27天前
|
监控 Kubernetes 持续交付
构建高效可扩展的微服务架构:后端开发实践指南
在数字化转型的浪潮中,企业对软件系统的要求日益提高,追求快速响应市场变化、持续交付价值成为核心竞争力。微服务架构以其灵活性、模块化和独立部署的特点,成为解决复杂系统问题的有效途径。本文将深入探讨如何构建一个高效且可扩展的微服务架构,涵盖关键设计原则、技术选型及实践案例,为后端开发者提供一条清晰的指导路线,帮助其在不断变化的技术环境中保持竞争力。
127 3
|
21天前
|
SQL 存储 API
阿里云实时计算Flink的产品化思考与实践【下】
本文整理自阿里云高级产品专家黄鹏程和阿里云技术专家陈婧敏在 FFA 2023 平台建设专场中的分享。
110315 10
阿里云实时计算Flink的产品化思考与实践【下】
|
9天前
|
Kubernetes 安全 Java
构建高效微服务架构:从理论到实践
【4月更文挑战第9天】 在当今快速迭代与竞争激烈的软件市场中,微服务架构以其灵活性、可扩展性及容错性,成为众多企业转型的首选。本文将深入探讨如何从零开始构建一个高效的微服务系统,覆盖从概念理解、设计原则、技术选型到部署维护的各个阶段。通过实际案例分析与最佳实践分享,旨在为后端工程师提供一套全面的微服务构建指南,帮助读者在面对复杂系统设计时能够做出明智的决策,并提升系统的可靠性与维护效率。
|
18天前
|
存储 缓存 监控
构建高效可扩展的后端服务架构
在当今互联网时代,构建高效可扩展的后端服务架构对于企业的业务发展至关重要。本文将探讨如何通过合理设计和优化后端服务架构,实现系统的高性能、高可用性和易扩展性,从而满足不断增长的业务需求和用户规模。
15 0
|
25天前
|
消息中间件 敏捷开发 运维
构建高效可靠的微服务架构:策略与实践
随着现代软件开发的复杂性增加,微服务架构逐渐成为企业解决大型应用系统分解、敏捷开发和持续部署问题的有效手段。本文深入探讨了构建一个高效且可靠的微服务架构的关键策略,包括服务的合理划分、通信机制的选择、数据一致性保障以及容错处理。通过分析这些策略在具体案例中的应用,我们旨在为开发者提供一套可行的微服务设计及实施指南。
130 6
|
28天前
|
Cloud Native 安全 持续交付
构建未来:云原生架构的演进与实践
【2月更文挑战第30天】 随着数字化转型的深入,企业对于信息技术的需求日益复杂化和动态化。传统的IT架构已难以满足快速迭代、灵活扩展及成本效率的双重要求。云原生技术作为解决这一矛盾的关键途径,通过容器化、微服务、持续集成/持续部署(CI/CD)等手段,实现了应用的快速开发、部署及运维。本文将探讨云原生架构的最新发展,分析其如何助力企业构建更加灵活、高效的业务系统,并结合实际案例,展示云原生转型过程中的最佳实践和面临的挑战。
|
2天前
|
消息中间件 运维 监控
现代化软件开发中的微服务架构设计与实践
本文将深入探讨现代化软件开发中微服务架构的设计原则和实践经验。通过分析微服务架构的优势、挑战以及常见的设计模式,结合实际案例,帮助开发者更好地理解如何构建可靠、可扩展、高效的微服务系统。
|
2天前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。

热门文章

最新文章