中台的概念说了好多年了,起源就是芬兰的游戏公司supercell,之后阿里就提出了大中台小前台的战略,然后和疯狗一样侵蚀了中国。

很多小公司为了显得牛逼,管他呢,干他,就要硬怼个中台出来,反正有个名字叫出来就显得很叼的样子。

其实然并卵,中台的目的还是为了更快的能承接业务的需求,释放开发的重复劳动。

这些年也经历了从交易到金融中台的体验,对中台也算是有个比较粗略的理解,这些年的中台真的有没有那么好,甚至于现在想到什么业务就想搞中台,想做什么就想往中台迁移,好像中台就是万能的,没有中台既不能显示自己的能力,又不能突出自己的水平。

今天,我就谈谈中台,先谈谈交易中台吧。

中台架构

任何一个新生事物的诞生,随之而来都会引发一系列的问题。

就拿中台来说,最开始的探索我想无非就是沉淀、抽象通用的业务能力,达到快速交付的目的,而后随着架构的调整,又会衍生出对应的组织中台、技术中台、数据中台等等。

通常,我们平时最多说的中台能力就是业务中台,比如用户中台、商品中台、交易中台、库存中台、营销中台、金融中台等等,这些通用的能力无论对于哪个公司的业务来说都应该是不可或缺的一部分。

对于前台来说,存在一点改变,比如BFF(backend for frontend)的概念,也叫做面向前端的后端。

通常,对于C端APP、PC、H5、开放平台等这些不同的前台对于数据的要求是不太一样的,为了适应这些变化,针对每个端都整一个BFF作为数据的聚合、裁剪,也可以承载鉴权、限流等一些通用的能力。

这样的架构方式就把传统的一些网关的能力和BFF放在了一起,当然也可以剥离开,更优的解法我想还是通过中间件的能力配置方式就能达到数据聚合、裁剪的能力,同时可以兼有路由、鉴权、限流等等。

中台沉淀的是通用和抽象能力,原本杂糅在一起的业务逻辑和能力就有了清晰的界定,一些传统的业务能力将会被划分到业务后台的概念中,比如一些CRM系统,财务管理系统,用户管理这些。

架构就是类似这样,接下来说具体的交易中台的建设。

交易中台

交易中台核心的3个部分就是正向交易逆向交易履约,无论做哪些抽象的能力,都离不开这3个模块。

一般在团队规模不大的时候,这3个能力都可以放在一起维护,完全没有什么问题,主要服务本身可以承载不用业务线的需求,能够对外输出通用的3个能力即可。

当然,更加具体的业务应该由业务本身来决定是什么,这里只会描述最基础应该具有的能力。

而当业务的体量上升之后,就会面临更多的拆分的必要,比如订单查询、下单、支付、逆向取消退款、履约拆分形式。

正向交易

让我从提单页、订单确认页开始说起,一般来说,提单页的信息非常多,我们要显示购买的商品信息、还有用户的等级、积分、能用的优惠券、价格、剩余的库存、支付方式等等,有的还有一些搭售的商品,具体还有怎么选择最优的组合方式,搭售商品的展示逻辑等等。

提单页涉及到的接口可谓是复杂的变态,而且QPS还高,通常这个界面的逻辑会由专门的导购服务来做聚合,当然也有的是让交易本身做这个聚合的逻辑,不过我认为由导购的服务来聚合更为合理一点。

其他的变化都比较好说,单纯的调用其他服务的接口应该就可以满足,由于这个界面的QPS会非常高,所以要做好熔断降级的措施,对于非主链路的服务在高并发的时候该降级的就一定要降级,绝对不能拖累到主链路的下单流程。

这里搭售单其实是一个比较复杂的部分,这个实现方式一般是用子订单的形式来实现,也有的实现方式是一个独立的平行订单,还有的是独立到另外一个服务,具体实现方式不做评价,但是复杂是真的复杂,几个订单交杂在一起,要保证最终下单一致性,必须都下单成功,而且对于支付来说合并支付、逆向退款也是非常复杂的一件事情。

提单页之后,就进入到真正的下单支付环节,下单的流程对于不同的业务来说可能不太一致,能力支持到位的话借助流程编排可能稍微轻松一点,反之为了兼容多种不同的业务必然需要抽象出足够通用的逻辑,但是这样也会使得简单的业务变得更加复杂。

而如果为了图简单,全部都是if else的话,也能快速搭起来架子,但是后续承载更多不同业务场景将会变得无比被动。

所以中台的能力应该是对现有的业务足够清晰之后再做的抽象,而不是啥也没有上来就要干塔喵的中台。

逆向交易

通常的考量肯定是要闭环的,这个词倒是很好,包括我们平时做设计方案的时候肯定也是如此,光进不出的那是貔貅,众所周知,貔貅是没有菊花的,难受。

订单的取消、退款更多的时候和支付的交互,对于复杂的业务逻辑,存在各种优惠券、红包、积分、会员权益扣减一大堆的就会让支付变得非常复杂。

支付的时候很爽,反正传参就完了,真正到了退款的时候,对于各种不同类型的权益使用、分润规则将会导致退款非常难,对于支付来说这一部分的能力并不好抽象,更多的计算的逻辑还是会被交易承载。

履约

履约一般而言异步的形式会比较更好一点,下单后发放积分、优惠券、红包属于履约,之后安排配送、发货、签收也都属于履约。

通常的形式是监听下单或者支付成功的消息,消费之后调用下游服务的接口,只要调用成功就代表履约成功,履约的最终成功应该由下游服务来保证。

当然,对于比如复杂的履约流程,涉及到物流配送等,那就不是这么简单了。


很多JVM的底层技术细节你是否只了解表面?

面对JVM Crash或性能调优方面的问题时你是否会束手无策?

面对上层Java应用发生的偏离预期的行为是否会不知所措?

赠送4本《深入解析Java虚拟机HotSpot》,这本书以源码分析为基础,从运行时、垃圾回收器、即时编译器3个维度全面、深入解析HotSpot VM的底层实现和工作机制,同时与上层的Java语言和库结合,指导读者解决JVM开发、JVM调优和JVM排错方面遇到的各种问题。作者是阿里云Java技术专家,热衷于研究编程语言的设计与实现,对Java虚拟机和编译器都有很深入的研究。

谈谈中台架构之交易中台相关推荐

  1. CTO让我研究中台(一):阿里的“数据+业务”双中台架构

    作者| Mr.K 来源| 技术领导力(ID:jishulingdaoli) 本文重新整理了阿里中台相关资料,包括阿里的几位技术专家,如谢良纯.玄难等,关于中台架构的几次分享内容,结合老K的理解进行梳理 ...

  2. 中台架构详解(上) | 大咖说中台

    作者 | 耿立超 责编 | 晋兆雨 来源 | <大数据平台架构与原型实现:数据中台建设实战> 中台打破了应用系统的壁垒,从企业全局梳理和规划业务程,重构了组织架构.业务架构与IT 架构. ...

  3. CTO丢给我中台总结:阿里的“数据+业务”双中台架构

    Mr.K 技术领导力(jishulingdaoli) 读完需要 5 分钟 速读仅需 2 分钟 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 本文重新 ...

  4. 阿里架构总监一次讲透中台架构,13页PPT精华详解,建议收藏

    阿里架构总监一次讲透中台架构,13页PPT精华详解,建议收藏 https://www.toutiao.com/i6733390971112784391/?tt_from=weixin&utm_ ...

  5. 再探阿里的“数据+业务”双中台架构

    01 阿里中台架构的定义 中台是一种架构理念和方法.任何一种架构的方法,其本质不外乎,利用分.合.打散.重组等技术手段,对系统进行有序化重构,以达到减少系统"熵"的过程,使系统得以 ...

  6. 阿里架构总监一次讲透中台架构,13页PPT精华详解,建议收藏!

    文/技术领导力社区 编辑/Emma 本文整理了阿里几位技术专家,如架构总监 谢纯良,中间件技术专家 玄难等几位大牛,关于中台架构的几次分享内容,将业务中台形态.中台全局架构.业务中台化.中台架构图.中 ...

  7. 阿里架构的中台架构的PPT分析

    本文整理了阿里几位技术专家,如架构总监 谢良纯,中间件技术专家 玄难等几位大牛,关于中台架构的几次分享内容,将业务中台形态.中台全局架构.业务中台化.中台架构图.中台建设方法论.中台组织架构.企业中台 ...

  8. 高屋建瓴 | 13页PPT讲述中台架构在阿里的实现!

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 本文整理了阿里几位技术专家,如架构总监谢纯良,中间件技术专家玄难等几位大牛,关于中台架构的几次分享 ...

  9. 中台架构详解(上)| 建设数据中台系列(四)

    中台打破了应用系统的壁垒,从企业全局梳理和规划业务程,重构了组织架构.业务架构与IT 架构. 在梳理了企业的IT 现状并回顾了SOA 的历史之后,我们需要对中台架构进行一番详细的介绍,阿里巴巴的Ali ...

最新文章

  1. Python的C/C++扩展
  2. apache设置网页gzip压缩(亲测可用)
  3. 学python找什么工作-学Python能找到什么工作?这4种工作最热门!
  4. 查找字段 如何 过滤
  5. UIView类绘图出现错误提示
  6. python判断奇数_python 中x%2 x1 判断偶数奇数 性能对比
  7. 遗传算法的基本概念和实现(附 Java 实现案例)
  8. C语言图书查询号系统,C语言图书查询系统.doc
  9. 苹果录制屏幕在哪设置_屏幕录像专家如何录全屏 屏幕录像专家全屏录制设置方法...
  10. html gbk正确 utf-8乱码,GBK与UTF-8互转乱码详解
  11. 人工智能商用成果落地撬动AI未来
  12. 声音克隆初体验~复制声音只需要15分钟
  13. 电视盒是计算机网络连接设备,电视盒子怎么连接电脑
  14. Linux进程管理软件supervisord使用心得
  15. Labview筛选符合条件的数据
  16. 好佳居窗帘十大品牌 窗帘需要装窗幔吗
  17. 关于如何发挥最好的学习状态的思考暨《自控力》一书读后感
  18. Python3 - pillow的基本用法(第三天)
  19. GPS是如何定位你在哪的?
  20. python中的位运算符

热门文章

  1. sqlalchemy数据库中的group_by()和order_by()使用
  2. HDU1083(二分图-匈牙利算法)
  3. Codeforces Round #658 (Div. 2)部分题解
  4. 图论 ---- D. Multiples and Power Differences (全局lcm + 矩阵二分图)
  5. python 测试linux dev文件,Linux测试开发人员要掌握的Linux命令有哪些?
  6. php域名黑名单,thinkphp 6 IP 黑名单功能
  7. 后端 消息 转发_小程序转发探索示例
  8. linux内核时钟管理,Linux时钟管理透彻分析
  9. python字典操作添加_Python字典常见操作实例小结【定义、添加、删除、遍历】
  10. rasa算法_(六)RASA NLU意图分类器