跳到主要内容

插件配置

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_pathBroker 与插件宿主之间的本地 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 定义请继续阅读 插件开发指南