用途:在 Litestar 中实现频道(channels)事件流,围绕 ChannelsPlugin 完成路由与扇出,支持发布、订阅、历史回放和 websocket 集成。
主要能力:可选内存、Redis Pub/Sub、Redis Streams 或 Postgres 后端;管理订阅者生命周期(start_subscription()、subscribe()、unsubscribe()、清理);配置历史与背压;可手动集成 websocket,也可通过插件生成 websocket 路由处理器。
使用方式:先选定后端与持久化模型,再定义频道名称或允许任意频道;在领域边界通过注入的 channels 插件发布事件;显式管理订阅者生命周期;在流量到来前决定是否配置历史与背压;需要并发 websocket 接收时优先用 run_in_background() 而非手动 iter_events() 循环。后端选择:本地开发、测试、单进程用 MemoryChannelsBackend;低延迟扇出优先于历史用 RedisChannelsPubSubBackend;需要历史回放用 RedisChannelsStreamBackend。
限制与注意:避免在无扇出需求时使用 channels;不要发布传输特定载荷;慢消费者场景需配置背压;开启任意频道需有命名、授权与生命周期策略;历史与积压应有界,防止新订阅者被淹没;websocket 集成需处理断开。具体安装命令与代码示例暂未提供。