CI status CodeCov Code Quality: Java Total Alerts

License GitHub Release Slack Status

📦 文档(英文) | 📔 例子 | ⚙️ 路线图 | 🌐 英文版

Apache EventMesh

Apache EventMesh 是用于构建分布式事件驱动应用程序的新一代无服务器事件中间件。

EventMesh 架构

EventMesh Architecture

EventMesh K8S 部署

EventMesh Operator

特性

Apache EventMesh提供了许多功能来帮助用户实现他们的目标,以下是一些EventMesh的关键特点:

  • 基于 CloudEvents 规范构建。
  • 快速可扩展的Connector,connectors,例如作为Saas、CloudService和数据库等的source 或sink。.
  • 快速可扩展的存储层,使用 JDBCApache RocketMQ, Apache Kafka, Apache Pulsar, RabbitMQ, Redis, Pravega, 和 RDMS(正在进行中)集成。
  • 快速可扩展的控制器,例如 Consul, Nacos, ETCDZookeeper
  • 至少一次的可靠性投递。
  • 在多个EventMesh部署之间传递事件。
  • 通过目录服务进行事件模式管理。
  • 通过 Serverless workflow 引擎实现强大的事件编排。
  • 强大的事件过滤和转换功能。
  • 快速、无缝的可扩展性。
  • 易于函数开发和框架集成。

路线图

请前往路线图查看Apache EventMesh的版本历史和新功能。.

子项目

快速入门

本节指南将指导您分别从本地DockerK8s部署EventMesh的步骤:

本节指南按照默认配置启动 EventMesh,如果您需要更加详细的 EventMesh 部署步骤,请访问EventMesh官方文档

部署 Event Store

EventMesh 支持多种事件存储,默认存储模式为 standalone,不依赖其他事件存储作为层。

在本地运行 EventMesh Runtime

1. 下载 EventMesh

EventMesh Download 页面下载最新版本的 Binary Distribution 发行版并解压:

wget https://dlcdn.apache.org/eventmesh/1.10.0/apache-eventmesh-1.10.0-bin.tar.gz
tar -xvzf apache-eventmesh-1.10.0-bin.tar.gz
cd apache-eventmesh-1.10.0

2. 运行 EventMesh

执行 start.sh 脚本启动 EventMesh Runtime 服务器。

bash bin/start.sh

查看输出日志:

tail -n 50 -f logs/eventmesh.out

当日志输出 server state:RUNNING,则代表 EventMesh Runtime 启动成功了。

停止:

bash bin/stop.sh

脚本打印 shutdown server ok! 时,代表 EventMesh Runtime 已停止。

在 Docker 中运行 EventMesh Runtime

1. 获取 EventMesh 镜像

使用下面的命令行下载最新版本的 EventMesh

sudo docker pull apache/eventmesh:latest

2. 运行 EventMesh

使用以下命令启动 EventMesh 容器:

sudo docker run -d --name eventmesh -p 10000:10000 -p 10105:10105 -p 10205:10205 -p 10106:10106 -t apache/eventmesh:latest

进入容器:

sudo docker exec -it eventmesh /bin/bash

查看日志:

cd logs
tail -n 50 -f eventmesh.out

在 Kubernetes 中运行 EventMesh Runtime

1. 部署 Operator

运行以下命令部署(删除部署, 只需将 deploy 替换为 undeploy 即可):

$ cd eventmesh-operator && make deploy

运行 kubectl get podskubectl get crd | grep eventmesh-operator.eventmesh 查看部署的 EventMesh-Operator 状态以及 CRD 信息.

$ kubectl get pods
NAME                                  READY   STATUS    RESTARTS   AGE
eventmesh-operator-59c59f4f7b-nmmlm   1/1     Running   0          20s

$ kubectl get crd | grep eventmesh-operator.eventmesh
connectors.eventmesh-operator.eventmesh   2024-01-10T02:40:27Z
runtimes.eventmesh-operator.eventmesh     2024-01-10T02:40:27Z

2. 部署 EventMesh Runtime

运行以下命令部署 runtime、connector-rocketmq (删除部署, 只需将 create 替换为 delete 即可):

$ make create

运行 kubectl get pods 查看部署是否成功.

NAME                                  READY   STATUS    RESTARTS   AGE
connector-rocketmq-0                  1/1     Running   0          9s
eventmesh-operator-59c59f4f7b-nmmlm   1/1     Running   0          3m12s
eventmesh-runtime-0-a-0               1/1     Running   0          15s

贡献

每个贡献者在推动 Apache EventMesh 的健康发展中都发挥了重要作用。我们真诚感谢所有为代码和文档作出贡献的贡献者。

这里是贡献者列表,感谢大家! :)

CNCF Landscape

Apache EventMesh enriches the CNCF Cloud Native Landscape.

License

Apache EventMesh 的开源协议遵循 Apache License, Version 2.0.

Community

微信小助手微信公众号Slack
加入 Slack

双周会议 : #Tencent meeting : 346-6926-0133

双周会议记录 : bilibili

邮件名单

名称描述订阅取消订阅邮件列表存档
用户用户支持与用户问题订阅取消订阅邮件存档
开发开发相关 (设计文档, Issues等等.)订阅取消订阅邮件存档
Commits所有与仓库相关的 commits 信息通知订阅取消订阅邮件存档
IssuesIssues 或者 PR 提交和代码Review订阅取消订阅邮件存档