由 Site Kit 添加的 Google 跟踪代码管理器 (noscript) 代码段 结束 Site Kit 添加的 Google 跟踪代码管理器 (noscript) 代码段
TBMQ 2.0 TBMQ 2.0

TBMQ 2.0:迁移到 Redis、MQTT 5.0 支持等

我们很高兴推出 TBMQ 2.0.0 版本!此版本带来了数据迁移的重大更新 设备的持久会话 从 PostgreSQL 到 Redis。它还扩展了TBMQ的MQTT 5.0功能集,实现了与MQTT 5.0标准的完全兼容。以下是此版本中包含的功能和更新的概述。

从 PostgreSQL 迁移到 Redis

在这个版本中,我们进行了从 PostgreSQL 到 Redis 的战略转变,专门用于处理与以下内容相关的数据: 持续会话 对于设备。此迁移是我们致力于优化高要求 MQTT 环境中的性能和可扩展性的核心部分,在这些环境中,有效管理持久客户端会话至关重要。

为什么要改变?

虽然 PostgreSQL 是一个功能强大的关系数据库,但它并不是为满足 MQTT 代理的高吞吐量、低延迟要求而设计的。我们的经验表明,随着数据量和请求率的增加,由于缺乏水平可扩展性选项,PostgreSQL 很难保持实时 MQTT 工作负载所必需的速度和响应能力。

Redis 带来了什么

Redis 是一种快速的内存数据存储,专为提高速度而构建,支持高性能操作且延迟最小。通过迁移到 Redis,我们现在实现了:

  • 提高数据访问速度:Redis 允许我们将关键 MQTT 数据存储在内存中,与基于磁盘的系统相比,大大减少了检索时间。
  • 增强的可扩展性:Redis 对高频读/写操作的高效处理与 MQTT 代理的需求完美契合,使 TBMQ 能够水平扩展并轻松管理数百万个并发连接。
  • 低延迟操作:Redis 的非阻塞 I/O 和简单的数据结构意味着即使在重负载下,响应时间仍然很低,从而确保更顺畅的消息处理和会话管理。
接下来是什么?

这次迁移只是一个开始。我们的工程团队致力于充分利用 Redis 的潜力,并且我们已经在致力于其他性能优化。请继续关注更详细的性能测试结果,我们将突破 TBMQ 在实时 MQTT 处理中所能实现的界限。

高级会话指标

借助 TBMQ 中的新客户端会话指标,管理员可以详细了解每个客户端的消息传递模式,并按服务质量 (QoS) 级别进行细分。这些指标为管理和优化 MQTT 代理环境提供了几个关键优势:

  1. 增强会话可见性:通过查看每个 QoS 级别处理的消息数量,管理员可以识别客户端使用模式并检测异常情况,例如异常高或低的消息计数,这可能表明存在连接问题或性能瓶颈。
  2. 主动排除故障:通过详细的指标,可以尽早查明和调查消息丢失、延迟传递或不规则发布率等问题,从而最大限度地减少潜在的中断。
  3. 客户行为分析:高级指标可提供对单个客户端行为的精细洞察,帮助管理员识别顶级发布者和订阅者。

总体而言,此功能改变了监控体验,即使在客户端数量和消息量扩大的情况下,也可以更轻松地确保代理保持高性能和可靠性。

未经授权的客户

为了增强安全性,TBMQ 现在包含“未经授权的客户端”功能,该功能可以实时监控具有无效凭据的客户端进行的连接尝试。此功能会记录客户端 ID、IP 地址、用户名、身份验证方法以及失败的具体原因等详细信息,使管理员能够清楚地了解未经授权的访问尝试。

通过跟踪这些失败的连接,管理员可以深入了解潜在的安全威胁,包括来自某些 IP 或特定用户名的重复访问尝试,从而使他们能够采取主动的安全措施。未经授权的客户端功能对于维护安全可靠的代理环境至关重要,特别是在客户端身份验证完整性至关重要的部署中。

订阅

TBMQ 的新订阅页面提供了一个集中视图,通过在一个可访问的位置显示所有活动订阅,为代理监控带来清晰度和控制力。只需单击一下,管理员就可以直接从此页面打开客户的会话详细信息,从而可以轻松地当场添加、编辑或删除订阅。

这种全面的概述简化了订阅管理,帮助管理员跟踪哪些客户端订阅了特定主题,评估跨 QoS 级别的订阅分布,并根据需要快速进行调整。通过简化这些流程,订阅页面有助于管理代理活动、诊断订阅问题以及确保客户端有效连接到正确的主题。

MQTT 5.0:订阅标识符

此更新引入了订阅标识符功能,这是优化 MQTT 通信中的消息跟踪和处理的重要补充。

运作原理:MQTT 5.0 中的订阅标识符允许客户端为每个订阅分配唯一的标识符。当代理发送与订阅匹配的消息时,它会在消息属性中包含此标识符,从而允许客户端识别哪个订阅触发了该消息。订阅标识符是在客户端订阅某个主题时设置的,并且它始终与该订阅相关联,直到它被修改或删除。

为什么需要它:出于以下几个原因,订阅标识符至关重要:

  • 高效的消息路由:通过使用订阅标识符标记每条消息,客户端可以快速确定原始订阅,从而更轻松地适当处理和路由消息。
  • 提高消息处理性能:订阅标识符允许客户端减少复杂消息解析的需要,这在快速响应时间至关重要的高吞吐量环境中尤其重要。
  • 增强分析:该功能允许客户基于每个订阅分析消息流,提供对流量模式的更深入的洞察,并帮助优化各种用例的配置。

使用案例:订阅标识符在具有多个订阅和不同消息流的场景中特别有用,例如具有大量传感器和设备的物联网应用程序。例如,在智慧城市基础设施中,每个订阅(例如交通数据、天气数据、空气质量监测)都可以被唯一标识,从而允许中央系统有效地处理数据并将数据路由到适当的服务以采取进一步行动。

MQTT 5.0:增强的身份验证

此更新包括增强的身份验证功能,这是对 MQTT 协议的重大改进,可实现更灵活、更安全的客户端身份验证方法。

运作原理:MQTT 5.0 中的增强型身份验证引入了新的 AUTH 数据包,可实现多步骤身份验证过程。这允许代理和客户端在会话期间交换多个与身份验证相关的消息,支持高级身份验证方案,例如质询响应机制和基于令牌的身份验证。身份验证过程可以在会话期间的任何时间发生,从而允许根据需要重新进行身份验证。

为什么需要它:出于以下几个原因,增强型身份验证至关重要:

  • 更高的安全灵活性:传统的 MQTT 身份验证通常依赖于单步用户名和密码交换,这可能会限制具有严格安全需求的应用程序。增强型身份验证支持使用更复杂的方法,例如 SCRAM(加盐质询响应身份验证机制),它提供安全的、基于质询的身份验证。 SCRAM 通过防止传输过程中的密码泄露和减轻某些攻击媒介(例如重放攻击),对于保护数据交换特别有价值。
  • 支持动态认证机制:增强型身份验证允许在正在进行的会话期间重新进行身份验证。此功能对于需要定期验证客户端凭据或妥善处理令牌过期以确保连续且安全的访问的应用程序特别有价值。
  • 适应行业特定安全标准:许多行业,例如金融和医疗保健,都有严格的认证标准。增强型身份验证提供了满足这些标准的灵活性,允许企业采用 MQTT,同时遵守行业法规。

使用案例:增强身份验证对于需要强大安全性的行业(例如工业自动化和医疗保健)中的物联网部署特别有利。例如,在医疗保健环境中,传输敏感患者数据的设备可以使用基于令牌的身份验证来确保安全、定期重新验证,防止未经授权的访问并满足严格的合规性要求。

其他值得注意的功能和增强功能

除了前面强调的功能之外,我们还进行了重大改进,以增强用户洞察、整体系统稳健性和性能。

客户端会话详细信息现在包括 MQTT 客户端凭据MQTT版本 经过身份验证的客户端的信息。此增强功能可以更好地了解会话细节,使用户能够轻松跟踪客户端身份验证和版本。

此版本中的一项关键改进增强了处理接收到的 MQTT 发布消息的性能。以前,使用两个队列(一个用于消息,另一个用于确认)来处理此过程,但通过此更新,我们已将其简化为单个非阻塞队列。这种优化显着提高了处理效率并减少了延迟,使其成为快速消息处理至关重要的高吞吐量环境的理想选择。

此版本带来了一系列有意义的增强功能,每项增强功能都旨在提高系统的透明度、安全性和性能,为更可靠、更高效的 MQTT 体验铺平道路。我们邀请您尝试这些强大的新功能 安装最新版本的 TBMQ.