NBF事件中心架构设计与实现

本文介绍了阿里巴巴供应链中台的NBF事件中心如何应用事件驱动架构解决业务链路复杂度和依赖问题。NBF提供了一个PaaS平台,包含微服务FaaS框架、低代码平台等产品,旨在提升研发效能。事件中心作为其一,支持事件契约定义、大事件处理、权限控制等功能,实现业务的高效解耦和稳定性。
摘要由CSDN通过智能技术生成

简介:NBF是阿里巴巴供应链中台的基础技术团队打造的一个技术PaaS平台,她提供了微服务FaaS框架,低代码平台和中台基础设施等一系列的PaaS产品,旨在帮助业务伙伴快速复用和扩展中台能力,提升研发效能和对外的商业化输出。事件中心就是NBF系列技术产品中的一员。本文首先介绍事件驱动架构的概念及适用场景,然后会介绍事件中心产品的设计和实现。

作者 | 林晖
来源 | 阿里技术公众号

一 业务背景

电商平台供应链的业务场景非常复杂,技术中台需要支持非常复杂且不断变化的业务需求,构建了数量繁多且紧密耦合的业务链路,为技术架构的维护带来了压力。

1 问题描述

上图是一个典型的业务架构,A域是上游域,B域和C域是下游域。A域在收到外部调用请求时,首先同步调用B域的服务接口完成同步业务逻辑,然后发送消息通知到MQ。C域异步消费消息后,反向调用A域的接口查询详细信息,完成异步业务逻辑。

这种架构的问题包括:

  1. A域强依赖B域的接口,B域接口变动会导致A域调用失败,而A域无法管控B域的接口变动;
  2. C域收到消息后需要反查A域的接口,对A域形成了双重依赖,A域接口和消息格式的任何变动及不稳定性都会影响C域;
  3. A域的消息和接口都是瞬时数据,两者由于时间差可能不一致,增加了C域处理的复杂度(例如:C域收到的消息是单据已创建,调用接口时查到该单据已完结);
  4. A域需要保证同步调用和消息通知的一致性,包括MQ不可用等情况发生时的容灾处理

面对这些问题,我们希望应用事件驱动架构的特性来解耦子域,降低业务链路复杂度,构建稳定并向前兼容的事件契约,从而提升全域的稳定性。

2 事件驱动架构的应用过程

  1. 重新梳理全链路业务流和业务活动,建立统一的标准语言;
  2. 定义标准的事件格式和通用基础字段;
  3. 各域定义包含完整业务语义、自闭包、多租户的领域事件;
  4. 开发并接入一套适应供应链业务特点的事件系统(NBF事件中心);

3 关于NBF

NBF[1] 是阿里巴巴供应链中台的基础技术团队打造的一个技术PaaS平台,全称是New-Retail Business Factory,她提供了微服务FaaS框架,低代码平台和中台基础设施等一系列的PaaS产品,旨在帮助业务伙伴快速复用和扩展中台能力,提升研发效能和对外的商业化输出。事件中心就是NBF系列技术产品中的一员。

本文首先介绍事件驱动架构的概念及适用场景,然后会介绍事件中心产品的设计和实现。

二 什么是事件驱动架构(EDA)

1 领域事件

很多同学会将事件和消息混淆。在业务系统中,事件指的是领域事件,而消息可以是任意数据或数据片段。领域事件的特点包括:

  1. 与服务接口一样有完整的schema,并保证schema向前兼容;
  2. 是业务流程的一部分,由业务动作触发,包含了完整(或部分但有独立语义)的业务状态变化;
  3. 事件消费者接收到事件后,相应修改自身的业务状态,并按需发出新的事件;消费者需要保证所有事件最终消费成功,否则会导致业务流程不完整;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值