插件配置
YedMQ 的插件系统采用进程模型。Broker 会扫描插件目录、启动子进程,并通过本地 socket 与插件通信。
Broker 侧配置
[plugin]
dir = "./plugins"
local_socket_path = "/tmp/yedmq_plugin.sock"
default_authorize_result = true
default_authenticate_result = true
| 配置项 | 说明 |
|---|---|
dir | 插件根目录。每个插件都应位于该目录下的一级子目录中。 |
local_socket_path | Broker 与插件宿主之间的本地 IPC 地址。在 Windows 上可以使用命名管道风格路径,或让 YedMQ 根据该值推导。 |
default_authorize_result | 当没有插件返回鉴权结果时的兜底值。 |
default_authenticate_result | 当没有插件返回认证结果时的兜底值。 |
目录结构
plugins/
my-plugin/
plugin.toml
my-plugin
从当前加载实现看,目录名最好与 plugin.name 保持一致,因为运行时会按该插件目录去解析可执行文件路径。
插件清单文件
[plugin]
name = "my-plugin"
version = "0.1.0"
description = "Example YedMQ plugin"
author = "Your Name"
license = "Apache-2.0"
[runtime]
type = "process"
executable = "my-plugin"
working_dir = "."
timeout_secs = 12
运行时说明
- 当前只支持
process类型。 - 可执行文件路径相对于插件目录解析。
- 插件会通过配置的本地 socket 回连到宿主。
- 当前运行时内部仍主要使用固定的请求/心跳超时,因此
timeout_secs更接近描述性元数据,而不是完整的运行时开关。
当前接入模型
插件会在初始化阶段声明 hook,YedMQ 按优先级进行排序。当前 Broker 侧主要接入的流程包括:
- 认证
- 鉴权
- 消息发布处理
- 断连及相关事件流
协议细节和 hook 定义请继续阅读 插件开发指南。