You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

微服务架构下Kafka与tb-rule-engine运行时扩容及可用性影响问询

关于Thingsboard微服务架构下Kafka与tb-rule-engine的动态扩容问题

一、运行时添加节点操作

Kafka节点扩容

  • 启动新的Kafka broker节点,配置与现有集群一致的zookeeper.connect参数,节点会自动加入集群。
  • 更新Thingsboard各服务配置中的kafka.bootstrap.servers,添加新节点地址,对相关服务进行滚动重启(无需停止整个集群)。

tb-rule-engine节点扩容

  • 启动新的tb-rule-engine实例,确保配置文件中service.id唯一,且与集群共享Kafka集群和数据库连接信息。
  • 实例启动后会自动加入规则引擎集群,无需额外配置。

二、扩容后的重哈希/重分配处理

Kafka分区重分配

Kafka默认采用一致性哈希分配分区,新增节点后需手动执行分区重分配命令:

kafka-reassign-partitions.sh --zookeeper <zk地址> --reassignment-json-file <重分配配置文件> --execute

该过程在后台执行,数据会逐步迁移,不会中断服务。

tb-rule-engine任务重分配

规则引擎基于Kafka消费者组机制,新增节点后消费者组会自动触发重平衡,将规则链的消费任务均匀分配到所有节点,无需手动干预重哈希操作。

三、不可用时间说明

  • Kafka扩容及分区迁移过程中,生产者和消费者可正常读写,仅可能出现极短暂的性能波动,无服务不可用时间。
  • tb-rule-engine节点扩容时,消费者组重平衡期间会有几秒的消费暂停,但不会丢失数据,重平衡完成后立即恢复,业务无感知。

四、平滑动态扩容支持确认

Thingsboard完全支持Kafka和tb-rule-engine的平滑动态扩容,整个过程无需停服,按上述步骤操作即可实现无感知扩容。

内容的提问来源于stack exchange,提问作者Nick Uchiha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:35:41