Skip to content

插件

EMQX 插件允许用户使用 Erlang 扩展核心功能,或将自定义逻辑集成到消息服务器中。这种机制非常适合实现自定义认证、权限控制、日志记录、指标采集或协议转换等功能。

本章节介绍插件的基本概念,以及如何开发、定制和管理插件。

什么是插件?

在 EMQX 中,插件是运行于 EMQX 节点中的 Erlang/OTP 应用。插件通过钩子与 EMQX 核心系统交互,钩子是一些预定义的事件,例如客户端连接、消息发布、认证等。

要在 EMQX 中使用插件,通常需要:

  1. 构建为发布包, 即一个 .tar.gz 文件,包含编译后的插件及其元数据;
  2. 通过 Dashboard、REST API 或 CLI 进行安装;
  3. 通过配置和生命周期操作进行管理(如启动、停止、卸载)。

插件启动时,通常会将部分函数注册为 EMQX 的回调函数,以扩展或修改其默认行为。插件彼此之间、以及与核心系统是隔离运行的,避免相互影响。同时,插件具备完整的生命周期管理机制,涵盖安装、启动、停止和卸载,使其在生产环境中更安全、可控。

核心概念

  • 钩子:EMQX 工作流程中的扩展点,插件可以在这些点插入自定义逻辑。
  • 回调函数:插件模块中注册到钩子的函数,用于处理特定事件。
  • 配置模式:可选的 Avro 格式配置校验模式,用于验证插件配置,并在 EMQX Dashboard 中动态生成配置表单。

插件开发流程概览

  1. 使用 EMQX 提供的插件模板开发插件;
  2. 根据实际需求定制插件逻辑(例如实现认证逻辑);
  3. 使用 make rel 命令构建插件发布包(.tar.gz);
  4. 通过 Dashboard、CLI 或 API 安装并启动插件;
  5. 根据需要更新配置、停止或 卸载插件。

了解更多