成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一個開源的云原生事件中間件!

開源 云原生
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 -> Prometheus
  • Tracing: 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客戶端sdk
  • eventmesh-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 plugin
eventMesh.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:

配置項

默認值

備注

eventMesh.server.http.port

10105

EventMesh http 服務端口

eventMesh.server.tcp.port

10000

EventMesh tcp 服務端口

rocketmq-client.properties:

配置項

默認值

備注

eventMesh.server.rocketmq.namesrvAddr

127.0.0.1:9876;127.0.0.1:9876

RocketMQ namesrv 地址

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

② 創建文件

mkdir -p /data/eventmesh/rocketmq/conf
cd /data/eventmesh/rocketmq/conf
vi eventMesh.properties
vi 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

責任編輯:趙寧寧 來源: 技術老男孩
相關推薦

2022-04-11 09:15:44

中間件開源

2013-05-17 17:01:32

紅帽OpenShifPaaS云

2013-05-17 15:08:19

紅帽

2024-06-12 13:40:58

2013-03-27 10:04:21

云計算開源中間件

2013-03-27 10:11:23

云計算紅帽

2012-09-13 15:48:16

云計算中間件

2010-03-19 15:24:15

云服務

2016-08-24 17:00:02

微服務容器原生云

2019-12-13 10:32:56

開源消息中間件

2025-03-27 11:03:18

2023-02-13 11:43:15

云原生中間件負載均衡

2022-08-09 08:31:29

RocketMQ消息中間件

2011-10-28 09:20:36

dorado

2018-12-07 12:47:06

iPaaS混合云多云

2011-08-23 14:58:54

Gartner云服務中間件

2020-12-23 10:26:15

中間件ApacheTomca漏洞升級

2011-12-30 10:31:38

云計算

2011-10-24 07:41:38

SOA中間件應用服務器

2012-11-01 15:16:22

金蝶中間件研究院院長
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品成人一区 | 午夜精品久久久 | 国产精品资源在线观看 | www日韩高清 | 亚洲成人自拍 | 99热这里有精品 | 超碰在线免费av | 99久久婷婷 | 自拍偷拍亚洲视频 | 日本一区精品 | 天堂av资源 | 一级黄色日本片 | 在线观看国产www | 精品中文字幕在线观看 | 91麻豆精品国产91久久久久久 | 久草综合在线 | 亚洲视频在线观看一区二区三区 | 国产精品久久久久久久久久久久久久 | 韩日在线 | www.日本三级 | 成人在线视频免费观看 | 羞羞的视频在线观看 | 热久久性 | 亚洲综合在线视频 | 成人亚洲一区 | 激情 一区 | 国产一区二区三区高清 | 国产精品日韩在线观看 | 91av在线视频观看 | 久久久性色精品国产免费观看 | www.久久影视| 国产亚洲欧美日韩精品一区二区三区 | 一本色道久久综合亚洲精品高清 | 精品国产伦一区二区三区观看说明 | 日韩在线观看网站 | 成人免费黄色片 | 午夜天堂精品久久久久 | 午夜精品一区二区三区在线 | 国产自产21区 | 亚洲欧美国产精品久久 | 亚洲精品成人av |