插件开发
插件用于承载“高变化、高定制、高风险”的能力,让核心保持稳定、可升级、可维护。
典型插件类型:
- 北向连接器:Kafka/Pulsar/ThingsBoard 等平台对接
- 转换/增强:字段映射、聚合、告警、边缘计算、规则引擎
- 行业能力:行业协议变体、行业模型、行业告警策略
插件边界(Best Practice)
插件应当:
- 消费/产出 统一数据模型 或标准事件
- 通过清晰的配置 schema 暴露参数(并支持版本化)
- 把资源(连接、缓存、线程/任务)限定在插件内部,可被统一回收
插件不应当:
- 直接修改 core 的全局状态(除非通过明确的扩展接口)
- 在关键路径引入无界缓存或不可控的阻塞调用
隔离与稳定性
- 故障隔离:插件崩溃/异常不应拖垮主进程(至少要可降级/可重启)
- 背压协作:插件输出进入 core 的有界管线,避免“插件无限吐数据”
- 错误语义:错误需带上下文(插件名、版本、配置 key、依赖端点)
配置与版本化
建议每个插件:
- 定义稳定的
plugin_id与schema_version - 兼容旧配置(或提供迁移工具/指南)
- 对外暴露最少但足够的关键参数(超时、并发、队列容量、重试)
下一步阅读
架构概览:插件在体系结构中的位置与职责边界北向 MQTT v5:北向对接语义参考(非插件专属)
