产品定价 立即试用
PE MQTT Broker
入门 文档 安装 架构 API

常见问题

TBMQ-Professional Edition

入门指南
配置与部署
连接性
功能与使用
安全与可靠性
订阅与消息
性能与扩展
许可与支持
什么是TBMQ专业版 (PE)?

TBMQ是ThingsBoard开发的高性能MQTT broker,可在MQTT客户端与IoT应用之间实现高效、可靠、可扩展的通信。TBMQ支持 MQTT3.xMQTT5.0,可与多种设备和行业用例兼容。

Broker提供两个版本:社区版 (CE)专业版 (PE)

专业版 (PE)企业级版本,面向商业IoT部署和大规模生产环境。除社区版全部能力外,还包含:

  • 白标品牌及UI定制
  • 高级安全与访问控制
  • 增强监控、分析与报表
  • 专业支持与维护

PE面向需要高吞吐、运行可靠性和高级管理能力以支撑关键IoT基础设施的组织。

若首次使用TBMQ,建议阅读 什么是TBMQ入门指南,详细了解其功能与部署选项。

如何开始使用?

建议使用 Docker 在本地PC上安装 TBMQ,并按照 入门指南操作。该指南涵盖安装、配置和初步测试,帮助您快速可靠地建立首次MQTT连接。

如何安装TBMQ?

可使用 DockerKubernetes脚本Helm 在本地或云上安装TBMQ。安装指南中有详细步骤说明,包括Kafka、Redis和PostgreSQL等依赖的配置。

如何用Docker或Helm启动TBMQ?

使用 Docker 时,运行提供的Docker Compose文件,可一键启动所有必需服务(Kafka、Redis、PostgreSQL和MQTT broker)。 使用 Kubernetes 时,使用官方Helm chart将TBMQ部署为可扩展、高可用的集群。Helm chart支持配置持久化、资源限制和监控等参数。 无论测试还是生产,两种方式均可在数分钟内让TBMQ运行起来。

TBMQ的系统要求是什么?

TBMQ可在一般硬件上运行,适用于测试或小规模评估。最低要求为:

  • CPU:1核
  • 内存:2 GB RAM

在典型环境中为获得稳定、顺畅的运行,推荐配置为:

  • CPU:4核
  • 内存:8 GB RAM
  • 存储:50 GB可用磁盘空间
  • 操作系统:Linux(x86-64架构)

集群或生产环境下的硬件需求取决于客户端数量和消息吞吐量。

高负载部署应为 KafkaRedisPostgreSQL 分配独立节点,以保障最佳可扩展性与可靠性。

如何将TBMQ升级到更新版本?

TBMQ升级流程简单。升级指南提供各版本的升级说明,以及兼容性变更和配置更新说明。

如何配置TBMQ用于生产环境?

生产环境中,TBMQ应针对性能、安全和容错进行配置。建议:

  • 为MQTT和WebSocket连接启用 SSL/TLS 加密。
  • 配置 认证提供方以安全验证客户端。
  • 为各topic配置合适的 Kafka分区数量,调整生产者和消费者参数,并调整 Redis有状态连接以获得最佳吞吐量。
  • 根据系统资源调整JVM内存和线程池设置。
能否在Kubernetes中部署TBMQ?

可以。TBMQ通过官方 Helm chart 或k8s清单全面支持 Kubernetes部署,可实现轻松扩缩容、自动恢复和滚动更新。可通过Helm values直接配置节点角色、持久卷和监控集成,适用于云或混合环境。

如何在TBMQ中设置集群?

TBMQ通过集群支持横向扩展。集群中各节点分担MQTT客户端和消息流量,保证可靠性和负载均衡。集群协调通过 Kafka 实现消息路由。

要启用集群,需部署多个连接到相同Kafka、Redis和PostgreSQL服务的TBMQ实例,并为每个节点在环境变量中配置唯一的broker ID(TB_SERVICE_ID)。

TBMQ使用哪些端口?

默认情况下,TBMQ监听以下端口:

  • 1883 – MQTT(明文TCP)
  • 8883 – MQTT over SSL/TLS
  • 8084 – MQTT over WebSocket
  • 8085 – MQTT over安全WebSocket (WSS)
  • 8083-HTTP Web UI访问

这些端口可在TBMQ配置文件中或通过环境变量修改,需在启动前完成。请确保防火墙或Kubernetes Ingress规则允许访问所选端口。

如何启用TLS/SSL安全连接?

在TBMQ配置中提供有效的 服务器证书私钥即可启用SSL/TLS。TBMQ支持仅服务端加密,以及更安全的 客户端证书认证 (X.509)。证书可由受信任CA签发或内部生成用于测试。配置完成后重启broker以生效。

如何在TBMQ中配置认证提供方?

TBMQ采用可插拔认证模型,可自定义客户端认证方式。可选:

  • 基本认证(client ID、用户名和密码)
  • 基于SSL的认证(X.509证书链)
  • JWT认证(JSON Web Token)
  • 增强认证(MQTT5.0)

认证规则在数据库中定义,在每次连接尝试时评估。

TBMQ数据存储在哪里?

TBMQ与 KafkaRedisPostgreSQL 集成,实现可靠、高性能的数据存储:

  • Kafka – 处理未处理的PUBLISH消息、Application客户端的持久消息,并存储客户端会话和订阅。
  • Redis – 存储Device持久消息,用于快速访问和恢复。
  • PostgreSQL – 存储用户凭据、MQTT客户端凭据、系统统计等元数据。

该混合架构确保数据持久性、高可用性和分布式系统内的高效投递。

支持哪些MQTT协议版本?

TBMQ完整支持 MQTT3.1.1MQTT5.0,兼容主流MQTT客户端和库。MQTT5.0支持包括 共享订阅用户属性主题别名增强认证原因码等高级特性,为开发者提供更大的灵活性和控制。

TBMQ支持MQTT over WebSocket吗?

支持。TBMQ支持 MQTT over WebSocketSecure WebSocket (WSS),使基于浏览器的应用和Web仪表盘能实时发布和订阅主题。默认WebSocket端点为:

  • 8084 – MQTT over WebSocket
  • 8085 – MQTT over Secure WebSocket (WSS)

WebSocket支持便于将MQTT通信集成到现代Web应用和IoT门户中。

如何配置Keep Alive和Clean Start选项?

TBMQ按MQTT规范支持 Keep AliveClean Start

  • Keep Alive 定义客户端消息之间的最大空闲时间。 若在此间隔内无数据包发送,broker将视为连接已断开。
  • Clean Start(MQTT5.0)或 Clean Session(MQTT3.1.1)决定broker是否在断开后保留客户端会话状态。

这些选项可在客户端配置。TBMQ会根据所选设置自动处理会话持久化和消息队列,保证可靠的重连行为。

TBMQ能做什么?

TBMQ在MQTT客户端之间支持无缝通信,确保安全高效的消息交换。它支持高级MQTT5.0功能,如共享订阅增强认证主题别名流量控制,为任何规模的IoT应用提供灵活性。TBMQ为性能和可扩展性而设计——无论您运行单个实例进行测试,还是运行为数千个客户端提供服务的集群设置。

可以在哪里托管TBMQ?

可在云环境本地部署本地 PC上托管TBMQ。为快速搭建,推荐使用 Docker安装指南。若计划在生产或集群环境中部署TBMQ,请参考 集群部署指南 获取基于Docker Compose的多节点部署步骤。

能否替换菜单中的默认TBMQ logo?

Yes. In the Professional Edition, all branding and visual identity settings can be configured directly from the White Label page in the user interface — no code changes required. You can fully adapt the platform to your company’s look and feel with just a few clicks:

  • 替换默认TBMQ logo和favicon为您自己的企业视觉元素。
  • 定制登录页、仪表板和系统页,从首次交互起即展示您的品牌。
  • 调整配色、强调色、logo尺寸及样式(包括CSS微调)以匹配企业形象。
  • 预览所有更改后再发布。
  • 配置自定义域名——映射您自己的URL(例如 portal.company.com),使用户通过您的品牌域名访问TBMQ。

These tools make it easy to deliver a fully branded experience that aligns with your organization’s visual standards.

安全性如何?

TBMQ通过 MQTT over SSL/TLS加密保障消息交换安全,防止未授权访问和数据篡改。支持创建自定义 认证提供方验证客户端凭据,并支持 增强认证(MQTT5.0)以实现更灵活的安全模型。可与现有证书机构集成或使用用户名/密码认证。这些特性为建设安全可靠的IoT通信网络提供坚实基础。

TBMQ支持哪些认证方式?

TBMQ支持多种认证机制,以保障安全、灵活的客户端验证。可用方式包括:

  • 基本认证——验证数据库中存储的client ID、用户名和密码。
  • X.509证书链认证——使用SSL/TLS证书验证客户端。
  • 增强认证(MQTT5.0)——支持MQTT5.0规范的SCRAM认证流程。
  • JWT认证——通过TBMQ认证API实现基于令牌的认证及与外部身份系统集成。

可根据部署和安全需求选择最适合的方式。

如何启用客户端证书认证 (SSL)?

TBMQ支持 SSL/TLS加密客户端证书认证(X.509证书链)。启用该功能需:

  1. 在配置文件中提供有效的服务器证书私钥
  2. 启用安全MQTT端口(默认 8883)。
  3. 配置TBMQ使用X.509证书链凭据验证客户端证书,实现双向认证。

这确保了客户端和服务器在建立连接前相互验证身份,为IoT和企业部署增添了强大的安全层。

TBMQ支持JWT认证吗?

支持。TBMQ通过认证提供方支持基于 JWT(JSON Web Token) 的认证,客户端可使用签名令牌而非静态凭据安全连接。JWT适合由外部身份服务签发凭据的动态或短期会话。

如何处理未授权的客户端连接?

TBMQ自动检测并记录未授权连接尝试。客户端认证失败时,broker会记录 client IDIP地址用户名TLS状态等详情。可在 未授权客户端 仪表盘中查看,或通过API查询做进一步分析。

如何监控并阻止未授权客户端?

TBMQ提供通过Web界面或REST API直接监控未授权客户端的工具。管理员可筛选、查看和删除记录。还可配置阻止规则,拒绝来自已知恶意IP或多次违规者的后续连接尝试。该功能有助于保持系统完整性并监控潜在安全风险。

TBMQ如何管理订阅?

TBMQ使用基于Trie的数据结构管理客户端订阅,实现快速且内存高效的topic查找。所有客户端订阅从Kafka主题消费并存入内存中的Trie,每个节点代表topic过滤器层级的一级。

Trie结构支持基于前缀的匹配,使TBMQ能快速识别与已发布消息匹配的topic的订阅客户端。从Kafka读取 PUBLISH 消息时,TBMQ使用Trie确定有相关订阅的客户端集,并将消息转发给每个客户端。

该方式确保高性能消息路由,查找时间取决于topic长度而非订阅总数,即便在有数百万活跃订阅的大规模环境中仍能高效扩展。虽然Trie的内存存储会略微增加内存占用,但能提供可预测且低延迟的消息投递。

TBMQ支持共享订阅吗?

支持。TBMQ支持MQTT5.0规范定义的共享订阅。共享订阅允许多个客户端以负载均衡方式从同一topic组消费消息。该特性特别有利于消息处理的水平扩展,例如在多个后端服务间分发遥测数据处理。

TBMQ如何处理保留消息?

TBMQ支持保留消息,确保新连接的订阅者立即收到该topic上最新发布的消息。客户端发布保留消息时,TBMQ存储该消息并在新订阅者订阅时自动投递。若收到空payload的保留消息,TBMQ按MQTT规范清除该topic的保留消息。

持久会话与非持久会话有何区别?

A persistent session stores the client’s subscriptions and undelivered QoS 1/2 messages, allowing message delivery to resume after reconnecting. A non-persistent session (Clean Start = true) is temporary — all subscriptions and queued messages are discarded when the client disconnects. TBMQ fully supports both modes and automatically handles session recovery for persistent clients after reconnecting.

TBMQ如何处置Last Will and Testament (LWT)?

TBMQ遵循MQTT标准处理遗嘱消息(LWT)。客户端连接时可指定LWT消息,若客户端意外断开,broker将自动发布该消息。该特性有助于通知其他客户端或监控系统异常断开情况,提升IoT系统的可见性与可靠性。

如何监控发布和接收的消息数量?

TBMQ提供消息吞吐量的详细指标,包括已发布已接收已丢弃消息数量。这些统计数据可通过内置监控仪表板查看。管理员可利用这些洞察追踪broker性能并优化系统配置。

TBMQ可支持多少客户端和每秒消息数?

TBMQ提供水平可扩展性,意味着它可以随着您的工作负载无缝增长。集群中的每个broker节点负责处理一部分负载,确保消息处理均衡和性能不中断。实际吞吐量取决于硬件、配置和消息特性(大小、QoS级别、持久化)。优化配置可处理数百万并发客户端连接每秒数百万条消息。有关详细指标和基准测试,请访问性能测试页面

如何监控TBMQ性能?

TBMQ通过其监控仪表板Prometheus端点暴露详细的性能指标。您可以跟踪以下关键指标:

  • 已连接客户端数量
  • 消息发布与接收速率
  • 队列大小与处理延迟
  • Redis与Kafka性能

这些指标可在 Grafana 或其他可观测性平台中可视化,以实时洞察系统健康与吞吐趋势。

客户端处理慢时TBMQ如何处理背压?

TBMQ实现了一种内部背压管理机制,在客户端无法快速消费消息时维持稳定的性能。当客户端的网络通道变为不可写时,TBMQ暂时暂停该客户端的消息交付。一旦通道再次变为可写,待传递的消息将按正确顺序传送。这种设计防止慢速消费者影响其他客户端,确保集群内的一致吞吐。

TBMQ使用何种许可类型?

TBMQ PE为商业许可版本,采用订阅制许可。包含额外企业级功能、支持服务与维护。使用PE版本需与ThingsBoard, Inc. 签订有效许可协议。

如何获取支持?

可查阅社区故障排除指南和文档,或联系我们获取技术帮助。了解更多我们提供的服务