Eventmesh-runtime 快速入门说明

1 本地构建运行

1.1 依赖

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

1.2 下载源码

EventMesh download 页面选择1.5.0版本的 Source Code 进行下载并解压, 您将获得apache-eventmesh-1.5.0-incubating-src

1.3 本地启动

1.3.1 项目结构说明:

  • 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加载模块

注:插件模块遵循 eventmesh 定义的SPI规范, 自定义的SPI接口需要使用注解 @EventMeshSPI 标识. 插件实例需要在对应模块中的 /main/resources/META-INF/eventmesh 下配置相关接口与实现类的映射文件,文件名为SPI接口全类名. 文件内容为插件实例名到插件实例的映射, 具体可以参考 eventmesh-connector-rocketmq 插件模块

1.3.2 插件说明

1.3.2.1 安装插件

有两种方式安装插件

  • classpath加载:本地开发可以通过在 eventmesh-starter 模块 build.gradle 中进行声明,例如声明使用 rocketmq 插件
  1. implementation project(":eventmesh-connector-plugin:eventmesh-connector-rocketmq")
  • 文件加载:通过将插件安装到插件目录,EventMesh 在运行时会根据条件自动加载插件目录下的插件,可以通过执行以下命令安装插件
  1. ./gradlew clean jar dist && ./gradlew installPlugin

1.3.2.2 使用插件

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

  1. #connector plugin
  2. eventMesh.connector.plugin.type=rocketmq

1.3.3 配置VM启动参数

  1. -Dlog4j.configurationFile=eventmesh-runtime/conf/log4j2.xml
  2. -Deventmesh.log.home=eventmesh-runtime/logs
  3. -Deventmesh.home=eventmesh-runtime
  4. -DconfPath=eventmesh-runtime/conf

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

1.3.4 启动运行

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

2 远程部署

2.1 依赖

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

2.2 下载

EventMesh download 页面选择1.5.0版本的 Binary Distribution 进行下载, 您将获得apache-eventmesh-1.5.0-incubating-bin.tar.gz

2.3 部署

  • 部署eventmesh-runtime
  1. # 解压 apache-eventmesh-1.5.0-incubating-bin.tar.gz
  2. tar -zxvf apache-eventmesh-1.5.0-incubating-bin.tar.gz
  3. cd apache-eventmesh-1.5.0-incubating
  4. # 配置 eventMesh.properties
  5. vim conf/eventMesh.properties
  6. # 启动EventMesh
  7. cd bin
  8. sh start.sh

如果看到”EventMeshTCPServer[port=10000] started….”,则说明设置成功。