首页 游戏 软件 资讯 排行榜 专题
首页
科技数码
一个开源的云原生事件中间件!

一个开源的云原生事件中间件!

热心网友
47
转载
2025-12-15

EventMesh 是一个动态的云原生事件驱动架构基础设施,旨在简化分布式应用和服务之间的事件通信。

一、项目介绍

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

EventMesh 是一个动态的云原生事件驱动架构基础设施,旨在简化分布式应用和服务之间的事件通信。它构建了一个高性能、可扩展、松耦合的事件中间件层,支持多种协议(如 HTTP、gRPC、TCP)和消息模式(Pub/Sub, Event Streaming),并提供了丰富的治理功能。其核心目标是成为连接应用程序、云服务和中间件的事件枢纽,构建响应式、弹性的分布式系统。

多运行时:

编排:

联邦:

二、应用场景

微服务解耦与异步通信:服务间通过事件发布/订阅进行异步交互,提高系统响应性和容错性,避免服务雪崩。事件驱动架构 (EDA) 实现:构建基于事件的业务系统,如订单处理、库存更新、支付通知等业务流程的驱动。实时数据管道:将数据库变更日志 (CDC)、应用日志、IoT 设备数据等实时事件流接入并分发到下游处理系统(如 Flink, Spark, Kafka Streams)。云服务集成:作为桥梁,连接 SaaS 应用、云函数(如 AWS Lambda, Azure Functions, 阿里云 FC)以及传统应用,实现跨云、跨环境的事件驱动集成。混合云/多云事件总线:在混合云或多云环境中提供统一的事件路由和管理能力。Serverless 事件源:为 Serverless 函数提供可靠、高吞吐的事件触发源。

三、功能模块

(1) EventMesh Runtime:

通信网关:接收来自不同协议(HTTP, gRPC, TCP, CloudEvents)的事件发布请求。协议适配:将不同协议的事件统一转换为 CloudEvents 格式(业界标准)进行内部处理。事件存储与转发:支持将事件持久化到后端存储(如 RocketMQ, Kafka, Pulsar, Pravega)或直接转发。连接器 (Connector):可插拔的插件,负责与具体的事件存储/消息队列(MQ)进行读写交互。ACL (访问控制列表):提供基于 Topic 和用户的权限控制。

(2) EventMesh SDK:

提供多种语言(Java, Go, Python, C++, Node.js, Rust)的客户端库,方便应用集成发布/订阅事件。封装与 EventMesh Runtime 的通信协议细节。支持 CloudEvents 规范。

(3) EventMesh Catalog:

事件元数据管理,提供事件定义(Schema)、发布者、订阅者的注册与发现功能。增强系统的可观察性和治理能力。

(4) EventMesh Dashboard (控制台):可视化 Web UI,用于监控集群状态(TPS、延迟、连接数)、管理 Topics、查看订阅关系、配置 ACL、管理连接器、事件追踪等。

(5) EventMesh Admin:提供 RESTful API 和管理 CLI,用于集群的运维管理、配置管理、健康检查等。

(6) EventMesh SPI (Service Provider Interface):插件化扩展机制,允许开发者自定义协议插件、存储插件、安全插件、注册中心插件等。

四、功能特点

(1) 云原生设计:

轻量级,容器化友好(Docker, Kubernetes)。支持动态配置、服务发现、弹性伸缩。健康检查、优雅启停。

(2) 协议多语言支持:

原生支持 HTTP/1.1, HTTP/2 (gRPC), TCP 协议接入。提供多语言 SDK,降低接入门槛。

(3) 拥抱 CloudEvents:内部采用并推广 CloudEvents 规范,提供跨平台、跨供应商的事件数据互操作性。

(4) 高性能与高扩展:

采用 Netty 等高性能网络框架。连接器架构支持水平扩展 Runtime 节点和灵活替换后端存储(如 RocketMQ, Kafka, Pulsar)。事件处理链路优化。

(5) 强大的治理能力:

可视化 Dashboard 提供实时监控。细粒度的 ACL 权限控制。事件链路追踪(集成 OpenTracing/OpenTelemetry)。事件元数据管理(Catalog)。

(6) 松耦合与灵活性:

发布者与订阅者完全解耦。插件化架构(SPI)支持高度自定义和扩展。支持多种事件传递语义(至少一次、至多一次)。

(7) 开源与社区驱动:Apache 孵化器项目,拥有活跃的社区和持续迭代。

五、项目架构

1. 技术架构

EventMesh 采用分层、插件化的架构:

(1) 接入层:

由EventMesh Runtime节点组成,负责接收来自EventMesh SDK或其他客户端(通过 HTTP/gRPC/TCP)的事件。进行协议解析、身份认证(可选)、ACL 校验。将事件统一转换为 CloudEvents 格式。

(2) 处理层:

在 Runtime 内部,事件经过可能的过滤、转换(通过 SPI 插件)后,由Connector插件处理。Connector负责与具体的事件存储层交互,执行事件发布(Pub)或持久化。

(3) 事件存储层:

可插拔的后端存储系统,如 Apache RocketMQ, Apache Kafka, Apache Pulsar, Pravega 等。由 Connector 对接。负责事件的可靠存储、排序和分发。

(4) SDK 层:

部署在应用程序端,提供简洁 API 供应用发布和订阅事件。屏蔽底层协议和 EventMesh 细节。

(5) 治理与管控层:

EventMesh Dashboard/Admin:提供可视化管理和 API 接口。EventMesh Catalog:管理事件元数据(可选部署)。依赖注册中心(如 Nacos, etcd, Zookeeper)进行 Runtime 节点发现和配置管理。集成 Metrics (Prometheus), Tracing (Jaeger/Zipkin) 用于监控。

(6) SPI 层:贯穿各层,提供协议、存储、安全、注册中心等扩展点。

(7) 架构图

(8) EventMesh云原生结构

2. 技术栈

(1) 核心语言:Java(Runtime, SDK-Java, Dashboard 后端),Go(SDK-Go),Vue.js(Dashboard 前端)

(2) 网络通信:Netty(高性能 TCP/HTTP), gRPC (HTTP/2), Reactor Netty (可选)

(3) 事件规范:CloudEvents SDK

(4) 存储插件 (Connector):Apache RocketMQ Client, Apache Kafka Client, Apache Pulsar Client, Pravega Client (Java)

(5) 注册中心:Nacos, etcd, Zookeeper, Consul (通过 SPI 插件支持)

(6) 配置中心:Nacos, Apollo, Zookeeper (通过 SPI 插件支持)

(7) 治理与监控:

Metrics:Micrometer -> PrometheusTracing:OpenTracing (Jaeger) / OpenTelemetry日志:SLF4J + Logback/Log4j2

(8) 前端:Vue 2/3, Element UI / Ant Design Vue, ECharts (Dashboard)

(9) 构建与依赖管理:Maven, npm/yarn

(10) 部署:Docker,Kubernetes (Helm Chart), 独立 JAR 包

(11) 其他关键库:Spring Boot (Dashboard 后端), Guava, Lombok, Jackson, Protobuf (gRPC), RxJava (异步处理)

七、部署指南

1. 依赖

建议使用64位操作系统,建议使用Linux / Unix;64位JDK 1.8+;Gradle至少为5.6, 推荐 5.6.*

2. 本地构建运行

(1) 下载

https://github.com/apache/incubator-eventmesh您将获得EventMesh-master.zip

(2) 项目结构

eventmesh-common : eventmesh公共类与方法模块eventmesh-connector-api : eventmesh connector插件接口定义模块eventmesh-connector-plugin : eventmesh connector插件模块eventmesh-runtime : eventmesh运行时模块eventmesh-sdk-java : eventmesh java客户端sdkeventmesh-starter : eventmesh本地启动运行项目入口eventmesh-spi : eventmesh SPI加载模块

(3) 插件说明

①安装插件

有两种方式安装插件:

classpath加载:本地开发可以通过在eventmesh-starter模块build.gradle中进行声明,例如声明使用rocketmq插件

implementation project(":eventmesh-connector-plugin:eventmesh-connector-rocketmq")文件加载:通过将插件安装到插件目录,EventMesh在运行时会根据条件自动加载插件目录下的插件,可以通过执行以下命令安装插件

./gradlew clean jar dist && ./gradlew installPlugin

② 使用插件

EventMesh会默认加载dist/plugin目录下的插件,可以通过-DeventMeshPluginDir=your_plugin_directory来改变插件目录。运行时需要使用的插件实例可以在confPath目录下面的eventmesh.properties中进行配置。例如通过以下设置声明在运行时使用rocketmq插件。

#connector plugineventMesh.connector.plugin.type=rocketmq

③ 配置VM启动参数

-Dlog4j.cnotallow=eventmesh-runtime/conf/log4j2.xml-Deventmesh.log.home=eventmesh-runtime/logs-Deventmesh.home=eventmesh-runtime-Dcnotallow=eventmesh-runtime/conf

注:如果操作系统为Windows, 可能需要将文件分隔符换成

④ 启动运行

运行org.apache.eventmesh.starter.StartUp的主要方法

3. Docker 运行

(1) 拉取镜像

执行docker pull eventmesh/eventmesh-rocketmq:v1.3.0, 你将会获取到EventMesh的镜像,如下图所示:

(2) 配置

预先准备: 你可能需要从github上下载源代码,并参考这两个文件(eventMesh.properties 和 rocketmq-client.properties)的内容来做下面的操作

① 需要配置的文件

在运行容器之前,你需要配置如下文件:

eventMesh.properties:

rocketmq-client.properties:

拉取了EventMesh镜像到你的宿主机后,你可以执行下面的命令来完成eventMesh.properties和rocketmq-client.properties文件的配置。

② 创建文件

mkdir -p /data/eventmesh/rocketmq/confcd /data/eventmesh/rocketmq/confvi eventMesh.propertiesvi rocketmq-client.properties

这两个文件内容可以参考 eventMesh.properties 和 rocketmq-client.properties

(3) 运行

①运行

执行下面的命令来运行容器:

docker run -d -p 10000:10000 -p 10105:10105 -v /data/eventmesh/rocketmq/conf/eventMesh.properties:/data/app/eventmesh/conf/eventMesh.properties -v /data/eventmesh/rocketmq/conf/rocketmq-client.properties:/data/app/eventmesh/conf/rocketmq-client.properties docker.io/eventmesh/eventmesh-rocketmq:v1.3.0-p : 将容器内端口与宿主机端口绑定,容器的端口应与配置文件中的端口一致-v : 将容器内的配置文件挂载到宿主机下,需注意配置文件的路径

② 检查容器的运行状况

执行docker ps来检查容器的运行状况:

执行docker logs [container id]可以得到如下结果:

执行docker exec -it [container id] /bin/bash可以进入到容器中并查看详细信息。

八、源码地址

https://gitee.com/bemy/incubator-eventmesh

来源:https://www.51cto.com/article/818028.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

.NET云原生开发指南:掌握核心概念与实践方案
科技数码
.NET云原生开发指南:掌握核心概念与实践方案

NET 云原生并非颠覆性革命,而是对现有 NET 技术的演进与扩展。它帮助开发者构建更适应云时代的应用,本质是一次能力升级而非被迫转型。 近年来,国内 NET 高薪招聘正发生明显转变,开始转向云

热心网友
02.10
一个开源的云原生事件中间件!
科技数码
一个开源的云原生事件中间件!

EventMesh 是一个动态的云原生事件驱动架构基础设施,旨在简化分布式应用和服务之间的事件通信。 一、项目介绍EventMesh 是一个动态的云原生事件驱动架构基础设施,旨在简化分布式应用和服务

热心网友
12.15
新一代私有云与云原生安全技术在AI时代的演进路径
科技数码
新一代私有云与云原生安全技术在AI时代的演进路径

云原生安全作为云安全的未来终极形态,其能力完备将在满足风险防控、多技术适配(信创、AI、边缘等)、关基业务保障三大核心诉求的背景下,经历“风险应对-业务适配-生态协同”的多层面进阶和演进。​ 云原生

热心网友
12.15
私有云、公有云、主机安全三大领域,特色厂商盘点
科技数码
私有云、公有云、主机安全三大领域,特色厂商盘点

本文将聚焦私有云泛云主机产业生态与特色厂商布局,并结合报告的研究成果进行重点分享和详细阐述。 随着私有云架构向混合云、云原生化不断演进,泛云主机形态已涵盖物理机、虚拟机、云主机、信创云主机、容器、无

热心网友
12.02
5G全栈可观测建设指南:从能力搭建到高效运维
科技数码
5G全栈可观测建设指南:从能力搭建到高效运维

面对可观测性建设各方面的挑战,G行选择采用基于零侵扰解决方案建设全栈可观测平台,能够零侵扰采集业务语义、系统调用、网络转发、文件读写调用链,并通过收集和关联服务自身的日志链路数据实现调用链的全覆盖。

热心网友
12.02

最新APP

你说我猜
你说我猜
休闲益智 03-31
史莱姆农场
史莱姆农场
休闲益智 03-31
凡人传说
凡人传说
角色扮演 03-30
恶魔秘境
恶魔秘境
角色扮演 03-29
猫和老鼠华为
猫和老鼠华为
休闲益智 03-29

热门推荐

崩坏星穹铁道3.4新增四星光锥怎么玩-崩坏星穹铁道3.4新增四星光锥玩法解析
游戏资讯
崩坏星穹铁道3.4新增四星光锥怎么玩-崩坏星穹铁道3.4新增四星光锥玩法解析

角色与光锥适配深度解析 为队伍挑选合适的光锥,往往能起到画龙点睛的作用。今天,我们就来深入聊聊几款功能各异的光锥,看看它们如何与特定命途的角色产生化学反应。 酣战如始 1 属性与适配角色:作为同谐命途的光锥,其核心属性集中在速度与能量恢复上。这无疑是那些专注于辅助队友、提供团队增益角色的优质选择。

热心网友
03.31
什么是加密货币对冲?如何操作?有什么优势?
web3.0
什么是加密货币对冲?如何操作?有什么优势?

什么是对冲? 加密货币市场的价格变化,向来以快速剧烈著称。上午还在上涨的资产,下午就可能面临回调。在这种高波动的环境下,交易者们自然会寻求一种方法来保护自己的资金免受冲击。这种方法就是对冲——一种旨在降低风险、提升投资组合稳定性的核心策略。简单来说,对冲的核心逻辑在于:当你持有的主要加密货币资产价值

热心网友
03.31
荣耀平板 PC 化升级计划公布,将带来 PC 交互、PC 级应用支持等特性
科技数码
荣耀平板 PC 化升级计划公布,将带来 PC 交互、PC 级应用支持等特性

荣耀平板PC化升级计划公布,将带来PC交互、PC级应用支持等特性 三月十号,荣耀的一场重磅发布会,揭开了其平板产品线战略升级的序幕。在荣耀Magic V6旗舰新品发布会后,荣耀终端股份有限公司全场景产品线的负责人,@荣耀潇哥,进一步分享了一项备受关注的“平板PC化升级计划”。 在分享中,@荣耀潇哥清

热心网友
03.31
5 分钟充好,9 分钟充饱,比亚迪闪充补上新能源转型最后一块拼图
业界动态
5 分钟充好,9 分钟充饱,比亚迪闪充补上新能源转型最后一块拼图

5 分钟充好,9 分钟充饱,比亚迪闪充补上新能源转型最后一块拼图 “没有人比我们比亚迪更懂电池。”这句在发布会上掷地有声的口号,背后是实打实的技术突破。前不久的比亚迪“闪充中国改变世界”发布会上,王传福总裁正式揭晓了第二代刀片电池与配套的闪充技术,一组数据瞬间引爆了行业: 从10%到70%电量,只需

热心网友
03.31
OPPO K15 Pro核心配置公布:明日发布,抢先了解亮点
网络安全
OPPO K15 Pro核心配置公布:明日发布,抢先了解亮点

IT之家 3 月 31 日消息,OPPO K15 Pro 系列手机已官宣将于明日 14:30 正式发布。IT之家注意到,OPPO K15 Pro 手机已现身正式,并公布了核心配置信息,IT之家附如下

热心网友
03.31