当前位置:网站首页>多业务模式下的交易链路探索与实践
多业务模式下的交易链路探索与实践
2022-08-05 11:28:00 【InfoQ】
一、业务背景
二、交易中台面临的问题

- 1、不同业务模式交易链路主节点有差异,且锁库存、发货、结算等节点也有差异
- 2、需要同时支持多种业务模型共存,且互不影响
- 3、交易链路可拓展,节点可复用,维护成本低,响应速度快,满足业务日常快速迭代
- 4、链路稳定,数据准确,流程可视化,能快速定位问题
三、交易链路实践与探索
3.1、交易链路实践之FSM有限状态机
FSM有限状态机是什么?
FSM方案能做什么?
FSM的四要素

- 现态:指当前所处的状态。
- 事件:又称为“条件”。当一个事件发生,将会触发一个动作,或者执行一次状态的迁移。
- 动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。
- 次态:条件满足后要迁往的新状态。
FSM实战
- 状态关系:初始状态、目标状态
- 角色:不同角色有不同的操作权限,比如卖家、买家、系统、客服
- 操作:对应事件Event
- handler:对应动作Action实现

FSM可视化交易链路

3.2、交易链路实践之基于future的分阶段并发模型
- 信息查询(商品、用户、地址、库存、活动、红包、业务线、标签等)
- 校验(库存校验、地址校验、红包校验、商品周期校验、服务校验、价格校验、积分校验、购买次数校验等)
- 风控拦截
- 订单信息组装
- 锁库存类(虚拟库存、实物库存、服务库存、锁红包、锁积分)
- 活动预算扣减
- 持久化(创建订单,创建支付单)
- 操作流水,日志埋点等等
a、传统过程化串行模型:

b、基于future的分阶段并发模型:

- 多线程使接口整体性能大幅提升;
- 将代码更具功能进行了抽象和结构化,分割成相邻状态的最小单元,当于搭建乐高积木,复用性显著提升;
- 拓展性与可维护性得到了质的飞跃;
- 并发严格按照分组划分,组内耗时受约于最长任务耗时
- 分组划分下,线程池利用率不饱和
3.3、交易链路探索之基于事件驱动并发模型

四、总结
边栏推荐
- Flink Yarn Per Job - RM启动SlotManager
- 四、kubeadm单master
- abc262-D(dp)
- ECCV 2022 | 视听分割:全新任务,助力视听场景像素级精细化理解
- MMDetection in action: MMDetection training and testing
- Nature:猪死亡1小时后,器官再次运转
- Student Information Management System (first time...)
- .NET in-depth analysis of the LINQ framework (6: LINQ execution expressions)
- 使用Windbg过程中两个使用细节分享
- 365 days challenge LeetCode1000 questions - Day 050 add a row to the binary tree binary tree
猜你喜欢
随机推荐
#yyds干货盘点#【愚公系列】2022年08月 Go教学课程 001-Go语言前提简介
knife4j
R语言ggplot2可视化:可视化密度图(Density plot)、可视化多个分组的密度图、数据点分布在箱图中间、添加主标题、副标题、题注信息
可视化开发必看:智慧城市四大核心技术
Go学习笔记(篇二)初识Go
华为分析&联运活动,助您提升游戏总体付费
如何用Golang来手写一个Blog - Milu.blog 开发总结
【硬件架构的艺术】学习笔记(2)同步和复位
Android development with Kotlin programming language three loop control
停电。。。烦烦烦!!!
提问题进不去。想问大家一个关于返回值的问题(图的遍历),求给小白解答啊
互联网行业凛冬之至,BATM的程序员是如何应对中年危机的?
MMDetection in action: MMDetection training and testing
PostgreSQL 2022 Report: Rising popularity, open source, reliability and scaling key
【C语言指针】用指针提升数组的运算效率
支持向量机SVM
The fuse: OAuth 2.0 four authorized login methods must read
[7.29-8.5] Review of wonderful technical blog posts in the writing community
STM32 entry development: write XPT2046 resistive touch screen driver (analog SPI)
What do T and Z in the time format 2020-01-13T16:00:00.000Z represent and how to deal with them









