真香!看到过的最完整中台落地!

来,讲一下交易中台,有图!!

圈中挚友

技术人之间总是惺惺相惜的,尤其是遇到相同价值观的小伙伴。今天要给大家推荐的是前转转公司(刚融资 3 亿美元的独角兽公司)首席架构师 & 技术委员会主席,孙玄

孙玄,我们都叫他玄姐,既然是技术人,我们就以技术会友。下面 这篇干货 就是玄姐在转转 打造交易中台 过程中的一些技术总结。

交易中台的设计细节

大中台战略下,中台将公司业务的公共能力下沉,并采用更加合理、可复用的架构和技术来实现这些基础能力。在电商行业内,将面临货物的采购、商品上架、交易发生、订单状态变化、客服介入等大量状态维护。每个状态之间具有很强的逻辑关联关系,比如:退款操作在发货前和发货后将是完全不同的流程,如图 1 是订单退款流程。

图1 订单退款流程

由此可见,对于复杂状态的管理是一个业务依赖,需求多变的场景。更多的场景可以扫码找玄姐私聊

在公司初创期,可以采用硬编码方式,对于每一个操作进行状态判断,每一步操作定制一套逻辑链路。随着业务的增加,定制化链路显然不优雅,大量流程代码无法维护,此时中台通用解决思路就尤为重要,有限状态机(Finite State Machine,缩写:FSM)开始在中台落地

有限状态机(以下简称FSM)又称有限状态自动机,简称状态机。维基百科定义是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。

图2 状态转移表

可以看出,FSM 是通过抽象为动作和状态,管理有限个状态转移的模型。动作是在给定时刻要进行的活动的描述,我们总结动作类型有如下:

  • 进入动作:在进入状态时进行

  • 退出动作:在退出状态时进行

  • 输入动作:依赖于当前状态和输入条件进行

  • 转移动作:在进行特定转移时进行

在 FSM 框架下,将流水线的状态流转流程进行了抽象和结构化,将复杂的状态转移图,分割成相邻状态的最小单元。这样相当于搭建了乐高积木,在这套机制上可以组合成复杂的状态转移图。

图3 状态机最小单元

开源框架中,Spring 集成了一个状态机的组件,这里就不做过多的介绍了。大家有兴趣可以参考spring-statemachine。

那贴合业务的状态机,玄姐是怎么做的呢?抽象!抽象!!抽象!!!

  • 初始状态、目标状态:状态关系

  • 角色:不同角色有不同的操作权限,比如卖家、买家、系统、客服

  • 操作:对应事件

  • handler:事件操作相应的action实现

在这套抽象下,结合交易的个性化需要,扩展了状态表的条件,同时使用 handler 和 Java 反射,来对逻辑代码进一步结构化。到这一步后,我们可以将数据模板存储到数据库中。

图四 交易中台FSM状态表

通过改造,核心代码 FSM 执行引擎只有不到 100 行。通过注册业务  handler,可以灵活的扩充业务能力。同时数据状态的维护是通过状态表,而不依赖手动编写代码,这对于代码质量的保证、工程回归测试都节省了大量的时间。也为中台实现配置化做好了铺垫。

中台沉淀了基础能力,如何实现?中台如何赋能业务的,业务是否满意呢?

交易中台的线上效果

看下面一个例子,基于交易,C2C、自营是两个具有极大区别的业务,他们有完全不同的两套业务流程。C2C 平台需要对买卖两端进行担保,而自营更多的是给予买家保证权益。简化版流程如图 5:

图5 简化版交易流程

通过中台 FSM 能力,我们只要能将状态图绘制出来,那么相应的状态流转表配置也已经产生。handler 只需要关注当前操作的业务逻辑,极大的解耦了状态和业务。

可以毫不夸张的说,一个新业务过来,中台能在2天时间内单人完成状态机配置开发上线。

这就是中台的效率!

交流完后,感同身受。我们经常被业务驱动着去重构,一个好的底层设计能够给公司带来的收益是巨大的,避免重复造轮子的同时,还能沉淀技术实力,真是一举多得。

刚好有孙玄分享的中台构建的视频,扫码免费领↓↓↓

扫码,免费领取孙玄中台的视频

孙玄×沈剑10年架构经验沉淀

拥有丰富经验的玄姐出来创业了,做他最擅长的针对技术人的在线教育,用更多的企业级案例和企业级代码,打通技术同学缺乏系统性学习的痛点。

同时,玄姐联合了架构师沈剑一起打磨课程,都是业界响当当的大牛。

我认真看了两位大咖给出的课程大纲,从知识的全面性、以及对认知提升方面的设计可以看出真心做教育。从整个交流来看,玄姐是有货、有料也有课,感兴趣的同学可以扫描二维码获取更消息的资料。

10多年的架构经验心血沉淀,字字珍贵!

上面,主要是《百万架构师》的课程大纲,技术同学可以对照着整理自己的知识体系,系统的知识才是我们可以掌握的知识。

由于内容太细,无法全面展开(看到每一行后面的数字了吗?)

早期扫码有福利:

    1. 免费领取孙玄授课视频

    2. 免费领取课程大纲

    3. 加孙玄好友,共同探讨架构问题

两次扫码加小助教,领取资料

感谢点在看支持技术创业????

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nacos是一个非常强大的服务发现和配置中心,它不仅可以实现服务注册与发现,还可以作为配置中心来管理应用程序的配置信息。在Spring Cloud中,我们可以使用Nacos作为配置中心,实现应用程序的动态配置。 关于Nacos配置不会动态刷新的问题,一般有以下几种原因: 1. 缓存问题 Nacos配置中心默认会有一层本地缓存,如果配置没有发生变化,客户端就不会刷新配置。可以通过设置配置缓存时间或者禁用缓存来解决该问题。 2. 配置监听器未开启 Nacos配置中心支持配置监听器,在配置发生变化时会自动通知客户端进行更新。如果监听器未开启,就无法实现动态刷新配置。可以通过在bootstrap.yml或bootstrap.properties中添加如下配置开启监听器: ``` spring.cloud.nacos.config.listener.enabled=true ``` 3. 配置文件未被监听 如果配置文件未被监听,即使监听器已经开启也无法实现动态刷新配置。在bootstrap.yml或bootstrap.properties中添加如下配置,即可监听指定的配置文件: ``` spring.cloud.nacos.config.file-extension=properties,yaml,yml spring.cloud.nacos.config.group=DEFAULT_GROUP spring.cloud.nacos.config.prefix=${spring.application.name} ``` 其中,file-extension指定配置文件的扩展名,group指定配置分组,默认为DEFAULT_GROUP,prefix指定配置文件的前缀,默认为应用程序的名称。 综上所述,如果遇到Nacos配置不会动态刷新的问题,可以先检查缓存设置、监听器和配置文件是否正确配置。如果仍无法解决问题,可以尝试升级Nacos版本或者进行调试排查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值