插件
EMQX 插件允许用户使用 Erlang 扩展核心功能,或将自定义逻辑集成到消息服务器中。这种机制非常适合实现自定义认证、权限控制、日志记录、指标采集或协议转换等功能。
本章节介绍插件的基本概念,以及如何开发、定制和管理插件。
什么是插件?
在 EMQX 中,插件是运行于 EMQX 节点中的 Erlang/OTP 应用。插件通过钩子与 EMQX 核心系统交互,钩子是一些预定义的事件,例如客户端连接、消息发布、认证等。
要在 EMQX 中使用插件,通常需要:
- 构建为发布包, 即一个
.tar.gz
文件,包含编译后的插件及其元数据; - 通过 Dashboard、REST API 或 CLI 进行安装;
- 通过配置和生命周期操作进行管理(如启动、停止、卸载)。
插件启动时,通常会将部分函数注册为 EMQX 的回调函数,以扩展或修改其默认行为。插件彼此之间、以及与核心系统是隔离运行的,避免相互影响。同时,插件具备完整的生命周期管理机制,涵盖安装、启动、停止和卸载,使其在生产环境中更安全、可控。
核心概念
- 钩子:EMQX 工作流程中的扩展点,插件可以在这些点插入自定义逻辑。
- 回调函数:插件模块中注册到钩子的函数,用于处理特定事件。
- 配置模式:可选的 Avro 格式配置校验模式,用于验证插件配置,并在 EMQX Dashboard 中动态生成配置表单。
插件开发流程概览
- 使用 EMQX 提供的插件模板开发插件;
- 根据实际需求定制插件逻辑(例如实现认证逻辑);
- 使用
make rel
命令构建插件发布包(.tar.gz
); - 通过 Dashboard、CLI 或 API 安装并启动插件;
- 根据需要更新配置、停止或 卸载插件。
了解更多
- 开发 EMQX 插件:了解如何使用模板从零构建插件;
- 自定义插件逻辑:查看如何实现认证、授权等回调逻辑;
- 管理插件:学习如何安装、配置、启停和卸载插件,适用于单节点和集群环境。