在开始下面的话题之前,我们先看一看有赞原有的核心交易架构。
初步看去,这套架构方案似乎看不出什么问题。事实情况也这样,我们做这套交易方案支持了百万级笔数的交易规模,取得了很不错的成果。
在2016年,公司经历了飞速的成长, 整体团队人员扩张了数倍, 公司整体业务线从单一的微商城电商交易型态扩张到支持多个垂直行业。交易团队也碰到了很多尴尬的情况:
在此之前,我们先看一看公司对于交易团队的要求,以及业务团队对于交易能力的诉求。
从上图中,可以看到,从业务团队的视角上来看,交易能力,其实是一种云化能力。不管是什么样的业务场景,只要交易场景存在,那么交易能力就应该能覆盖。换句话说,交易团队存在的价值,就是”能够很快速地支持所有业务的交易“。
这个时候稍微清晰了一点当前的困难的原因:原来的我们,一直是在做微商城的业务,认为”微商城的业务规则=交易的能力“。这个定位与垂直业务的期望很不匹配。
既然”微商城的交易规则“不等于”交易能力“,那么交易能力是什么? 有什么内容?与垂直业务又有什么关系?
这三个是很有意思的问题。 在弄明白这三个问题之前,我们先把我们从一个互联网从业者的角色,转变成一个普通的人。假设我们要去做三件事情,我们看一看现实生活的交易细节:
上面例子,都很平常。但是平常的事情,蕴含着几千年的交易规律。我们仔细品味一下上面的细节,发现从大到小的交易,有几个共同的点:
从理论上来说, 线上系统处理的也是真实世界的问题, 只是手段略有不同。我们再回顾一下自己平常碰到过的交易场景,都逃不出这个范畴。 我们完全有理由把这个结论当成线上交易系统的指导思想。我们对于交易系统的抽象理解就是: 交易的本质是:买卖双方就付款细节/交货细节/商品质量细节/赔偿细节,先签定一个契约。而后双方履行契约的全过程。订单仅仅表示双方履约的过程和凭证.
我们看一下新交易的最骨干的模型。
搞明白了我们的核心问题, 那么很多事情就迎刃而解了。
要根治交易系统当前碰到的困局,除了重构之外,没有别的捷径可走。
在进行本章节的讲解之前,我们再回顾一下,上面讲的三个生活中的交易场景,我们继续仔细品味一下,三个交易场景的细节点,突然有了一个惊人的发现:
弄明白这些特性,直接决定了,我们跟垂直行业的关系。即:什么东西应该交给垂直行业,什么东西,交易系统应该搞定。
以下的新交易的架构大图:
在上图中,明显出现了几个原来没有出现过的一些名词。我们做一下解释:
buy: 业务的buy,由垂直业务掌控,它不一定是一个独立系统, 它的核心使命是包装交易平台提供的各种能力,根据垂直业务规则,做定制。例如,美业的理发业务调用下单接口的时候,可能要做预约时间的选择,buy系统需要做一下这方面的校验与参数拼装。另外,垂直业务的交易确认页面,也是有不同的显示规则,这个需要buy系统做支持。
流程编排引擎:这个是整个新交易的核心思想。业务规则是通过配置化形成的。流程配置化的最小颗粒度是组件。引擎把所有的组件形成一个串,执行业务规则。流程编排引擎的配置规则,是DB中的数据,可以随时添加数据。 所以这个引擎的设计,对于快速支持新的业务形态,起了至关重要的作用。
交货/退货路由引擎:对于交易系统来说,所有的交货/退货过程,都可以看成黑盒子。只要知道路由引擎会把相应的交货过程做掉就可以的。原因是:我们认为交货是一个不可归纳的行为。交货的细节,是需要交还给垂直业务自己去做的。
组件:对于流程中所有元素来说, 所有的东西都是组件,都可以纳入到流程编排的范围之内。如:扣库存组件,校验用户合法性组件,校验地址可达性组件,进入支付组件等等。
对于上面的解释,可能还有三个问题核心未回答: 1 既然是通过流程编排来配置出一个业务流程,那么,如何定位到一个业务?
2 交易的核心流程阶段与主模型数据模拟是怎么样的?
3 横向业务与垂直业务
交易是非常核心的系统,新交易系统的上线流程,无异于飞行中换发动机,难度可想而知。我们把实施路径定为以下几个阶段:
1 正向交易优先启动重构,用新的模型做业务支持。
http://tech.youzan.com/#
- 正向交易实行双写策略,即新模型写一份,再同步写到老模型数据一份。为了不影响外围系统。 - 上线时,优先灰度内部商户,而后小商户,最后大商户的原则。 - 上线后,通知外围业务,做消息机制的改造。 - 优先支持新业务,然后灰度老业务的原则。
2 订单管理启动重构,在正向交易做完全量切流程之后,再做灰度上线。
订单管理的同步策略,不再依赖db做数据的导出/查询业务的存储介质。采用宽表的一些介质,做到dump可配置化,导出可配置化。通过这样的方式,一次性丢弃老的数据模型,同时获到业务配置化能力。如ES,hbase
3 逆向交易启动重构, 在正向交易做完全量切流程之后,再做灰度上线。
遵循逆向交易流程配置化的原则。
4 等到逆向交易与订单管理做完全量分流之后, 再停用双写策略。(原有的老模型自然全量失效)
欢迎关注我们的公众号
Original url: Access
Created at: 2019-09-26 17:16:51
Category: default
Tags: none
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论