Skip to content

基本概念

本章解释 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

如果多个消费者共享同一队列,那么每条消息只被一个消费者处理。消息确认后会被删除。适用于任务分发、负载均衡等场景。

详见消息路由 — Destination

Topic Filter

Topic filter 用于匹配一个或多个 Topic,支持通配符:

  • +:匹配单个层级,例如 building/+/floor/2/#
  • #:匹配剩余所有层级(须位于末尾),例如 building/1/#

Destination 通过 topic filter 声明自己关注哪些 Topic 上的消息。

生产者与消费者

  • 生产者:创建并发送消息的客户端应用(MQTT 中称 Publisher,Kafka 中称 Producer)。
  • 消费者:接收并处理消息的客户端应用(MQTT 中称 Subscriber,Kafka 中称 Consumer)。