1 简介
引入事件引擎作为事件流处理,集成中心,事件中心,流ETL的基础设施,建基于rocketmq的开源rocketmq eventbridge是一个很好的选择,经过分析后,rocketmq eventbridge基本满足要求,但域模型(domain)有比较大的改进空间,本次设计主要重构事件通道领域模型,及其持久层,本文主要介绍逻辑通道域模型设计
2 规划特性与发布计划
2.1 M1 逻辑事件通道
构建逻辑事件通道,映射物理事件通道
2.2 M2 分布式worker
引入elastic-platform,重构分布式worker,包括worker集群管理,配置管理
2.3 M3 资源管理器
支持k8s,实现资源高可伸缩
3 术语
Ø CloudEvents
用标准方式描述事件数据的开源规范,旨在简化事件声明以及跨服务、跨平台的消息投递
Ø 事件
状态变化的数据记录
Ø 事件总线
事件总线负责接收来自事件源的事件
4 参考资料
rocketmq eventbridge与connect源码原理分析I-架构,服务和组件
rocketmq eventbridge与connect源码原理分析II-worker
5 场景视图
下图展示场景,以用例展示
类型定义 连接器类型注册,包括连接器参数,涉及手动录入,执行角色是系统的管理员
逻辑事件通道 拖拽构建逻辑事件通道,执行角色是用户
物理事件通道 用户构建好逻辑事件通道,一键启停,也可以部分连接器启停
监控指标 事件通道状态,连接器状态,bus流量
6 运行架构
总体来说,EventBridge可以看作是runtime(connect)的管理台,基于domain构建逻辑事件通道,调用runtime api创建物理(可运行)事件通道,事件基于CloudEvent标准
7 技术架构
整个架构可以分为两部分:上面是控制面、下面是数据面
控制面主要是类型注册,逻辑通道组件
数据面是真正数据流通通道,逻辑通道映射具体runtime物理通道,如,rocketmq connect
8 组件架构
core.domain 逻辑事件通道的模型
core.client 远程调用接口,定义与runtime api的构建物理的事件通道的契约
adapter具体runtime实现
adapter.clinet core.client对应rocketmq connect的实现,构建/启停connector等操作
adapter.web 逻辑事件通道模型的构建,连接器/转换类型的注册,基于spring boot的web应用
adapter.persistence 事件通道模型持久
其中,web,rpc,持久属于adapter子系统,不同的runtime有对应的实现
9 事件通道领域模型
系统最核心功能,定义逻辑事件通道
Ø 组件
Component 组件基类,获得基本属性
ClassComponent 类型组件,定义组件类型(className),描述属性(ParameterMetadata), ParameterMetadata用于界面构建属性输入页面,验证
Ø 事件通道
事件通道领域可以分3层,类型定义;实例;运行
EventBridge 事件通道,聚合一组事件源和事件目标,过滤器,转换;多个事件源输入,经过过滤器分发,转换,最终到事件目标
EventSourceClass/EventTargetClass/Transform 源/目标事件/转换类型定义,注册,包括各组件的属性,类型,是否必须等,用于构建实例
EventSource/EventTarget/Transform 源/目标事件/转换(实例)
Runner 运行实例,描述运行环境,资源
EventBus运行的总线,包括事件存储(队列),过滤规则(最终落地为转换)