事件引擎EventBridge v1.0实现解释与API说明

1 简介

      事件引擎作为事件流处理,集成中心,事件中心,流ETL的基础设施,建基于rocketmq的开源rocketmq eventbridge是一个很好的选择,经过分析后,rocketmq eventbridge基本满足要求,但域模型(domain)有比较大的改进空间,本次设计主要重构事件通道领域模型,及其持久层

前篇事件引擎EventBridge v1.0设计介绍设计,本文介绍设计的落地和代码实现细节,以及api说明,本版本与原版本最大区别是重构了领域模型和持久实现,重新设计

2 特性

2.1 重构逻辑事件通道

重新设计逻辑事件通道模型

2.2 分布式worker

引入elastic-platform,重构分布式worker,包括worker集群管理,配置管理

2.3 资源管理器

集成弹性资源组件,实现资源高可伸缩

3 术语

Ø CloudEvents

用标准方式描述事件数据的开源规范,旨在简化事件声明以及跨服务、跨平台的消息投递

Ø 事件

状态变化的数据记录

Ø 事件总线

事件总线负责接收来自事件源的事件

4 参考资料

《rocketmq eventbridge与connect源码原理分析I-架构,服务和组件.docx》

《rocketmq eventbridge与connect源码原理分析II-worker.docx》

《事件引擎eventbridge1.0 设计说明书.docx》

5 场景视图

下图展示组件的场景视图

插件域 列表本地插件,自检插件可用性;用例针对本地插件,并非runtime

类型定义 连接器类型注册,包括连接器参数,涉及手动录入,执行角色是系统的管理员

逻辑事件通道 拖拽构建逻辑事件通道,执行角色是用户

运行域 用户构建好逻辑事件通道,下发到runtime运行,支持一键启停整个通道,也可以单个连接器启停

6 运行架构

EventBridge可以看作是runtime的管理台,domain构建逻辑事件通道,rpc 创建并运行物理事件通道,事件兼容CloudEvent标准,runtime可以无缝切换

7 技术架构

下图技术架构

 eventbridge 构建逻辑事件通道,其中的rpc组件调用runtime构建物理通道,获取连接器状态等,目前runtime是rocketmq connect

rocketmq connect runtime是事件通道的物理实现者,执行者;worker是其核心组件,包装执行连接器,默默搭通消息总线,连接source/target;提供,集群,分片,位点,配置等核心服务

底层rocketmq,提供消息(事件)存储,分布式等支撑服务

8 工程架构

core.domain 逻辑事件通道的模型

core.client 远程调用接口,定义与runtime api的构建物理的事件通道的契约

adapter具体runtime实现

adapter.client core.client对应rocketmq connect的实现,构建/启停connector等操作

adapter.web 逻辑事件通道模型的构建,连接器/转换类型的注册,基于spring boot的web应用

adapter.persistence 事件通道模型持久,目前实现neo4j/jpa

9 领域模型

重构逻辑事件通道领域是本组件的核心,本版本重新设计逻辑通道模型,面向对象,简化一些暂时没用的,如,RunOptions,面向对象模型更易达到数据完整性,对象操作使api易于理解,操作顺畅移动

Ø 通道组件模型

Component 组件基类,定义组件基本属性,行为

ClassComponent 类型组件,定义组件类型(className),参数元数据(ParameterMetadata)

ParameterMetadata 参数元数据,属性require是否需要;属性secret是否保密,可用于界面构建属性,验证属性合法性

ObjectComponent 对象组件,是类型的实例,拥有参数,对应ParameterMetadata

Ø 事件通道模型

 事件通道领域可以分3层,类型定义;实例;运行

EventBridge 事件通道,聚合一组事件源和事件目标,过滤器,转换等;多个事件源输入,经过过滤器分发,转换,最终到事件目标

EventSourceClass/EventTargetClass/TransformClass 源/目标事件/转换类型定义,注册,包括各组件的属性,类型,是否必须等,用于构建实例

EventSource/EventTarget/Transform 源/目标事件/转换(实例)

Runner 运行实例,描述运行环境和资源

EventBus 运行总线,包括事件存储(队列)

*原版本还有EventRule类,考虑到EventRule最终落地到转换器,本版本把事件通道转换视为普通转换,EventRule变成Transform的属性

服务API

api分两个接口AdminFacade,BusinessFacade

AdminFacade 管理类api,包括插件类型列表,插件类型注册,使用者是系统管理员

BusinessFacade 业务类api,用户构建逻辑事件通道,运行事件通道,使用者是最终用户

api划分为4个域,插件域类型域逻辑通道域运行域

api概念

Ø 插件域和类型域

  Ø 逻辑通道域

Ø 运行域

运行域包括runner,runner也可以放到逻辑通道域; 连接器启停

 附录

demo

demo分阶段1,阶段2,演示动构建态通道,连接器启停,一对多/多对一的source到target分发

 注意:rocketmq connect的rocketmq连接器用于阿里云,本地的rocketmq需要自行开发,可参考rabbitmq连接器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中间件XL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值