No description
Find a file
2026-07-01 06:33:40 +00:00
DEVELOPER.md 上传文件至 / 2026-07-01 06:33:40 +00:00
README.md 上传文件至 / 2026-07-01 06:33:40 +00:00
USER.md 上传文件至 / 2026-07-01 06:33:40 +00:00
version.md 上传文件至 / 2026-07-01 06:33:40 +00:00

虚拟总线 — koru-bus

一句话Koru SCADA 所有模块间通信的唯一通道。基于共享内存SMIB 架构)的进程间轻量级消息总线,提供低延迟、高吞吐的发布/订阅能力。

在架构中的位置

Protocol → [IRTDB::set_yc] → RTDB → [Bus::publish(DATA_CHANGED)]
                                          │
                     ┌────────────────────┼────────────────────┐
                     ▼                    ▼                    ▼
                   alarm               history              forward
              [subscribe]           [subscribe]           [subscribe]

谁需要读这份文档

角色 读什么
想在模块里 publish/subscribe 事件 DEVELOPER.md
想部署/配置总线参数 USER.md
只想知道总线做什么 读到这里就够了

模块一览

属性
产出 头文件 + 静态库 libkoru_bus.a
依赖接口 无(基础层)
发布接口 koru::bus::Bus 类 + Subscription / CallbackSubscription
订阅事件
发布事件 无(总线是通道,不产生事件)

设计要点

特性 描述
进程内单例 同一进程内同一 bus_name 共享一个实例,引用计数管理
4 Topic 隔离 DATA / ALARM / CONTROL / SYSTEM 独立共享内存段
Per-subscriber SPSC 每个订阅者独占 SPSC 环,写者写入副本,无锁无竞争
eventfd 通知 跨进程通过 eventfd 唤醒消费者
同进程优化 同进程消费者不触发 eventfd由 io_context post 自唤醒
NullBus 测试 同步回调模式,单测无需事件循环

版本记录

version.md