基本概念
本章解释 FlowMQ 中最常用的概念与术语。这些概念是理解和使用 FlowMQ 的基础。
协议无关
以下所有概念都是协议无关的,它们是 FlowMQ 的内部概念。
消息
消息是数据流转的基本单元,包含:
- Payload:业务数据本体,通常为二进制或文本。
- 元数据 / 属性:可选键值对,用于携带业务标签、追踪信息、内容类型、时间戳等。
消息进入 FlowMQ 后会被转换为内部统一格式,以便跨协议路由与投递。
Topic
Topic 是 FlowMQ 内部的路由地址。消息进入系统时,协议适配器从各协议消息中提取并映射出 Topic,路由引擎据此进行匹配与分发。
Topic 采用层级命名结构,以 / 作为分隔符,例如:building/1/floor/2/thermostat/temperature
详见消息路由 — Topic。
Destination
Destination 是消息的投递目标。每个 Destination 关联一组 topic filters,路由引擎将匹配的消息投递到对应的 Destination。FlowMQ 目前支持以下 Destination 类型:
Subscription
实时推送给在线订阅者。同一条消息可被多个 Subscription 同时接收,适用于事件广播、实时通知等场景。
Stream
以追加日志形式持久化消息,支持按偏移量消费与历史回放。适用于事件流、日志管道、数据回溯等场景。
Queue
如果多个消费者共享同一队列,那么每条消息只被一个消费者处理。消息确认后会被删除。适用于任务分发、负载均衡等场景。
Topic Filter
Topic filter 用于匹配一个或多个 Topic,支持通配符:
+:匹配单个层级,例如building/+/floor/2/##:匹配剩余所有层级(须位于末尾),例如building/1/#
Destination 通过 topic filter 声明自己关注哪些 Topic 上的消息。
生产者与消费者
- 生产者:创建并发送消息的客户端应用(MQTT 中称 Publisher,Kafka 中称 Producer)。
- 消费者:接收并处理消息的客户端应用(MQTT 中称 Subscriber,Kafka 中称 Consumer)。