【Thingsboard】源码分析: kafka 的微服务架构

Apache Kafka是一个开源的流处理软件平台。ThingsBoard 使用 Kafka 来保存来自 HTTP/MQTT/CoAP 传输的传入遥测,直到它被规则引擎处理。ThingsBoard 还使用 Kafka 进行微服务之间的一些 API 调用。从 2.5 版本开始,我们已经从使用gRPC切换到 消息队列 来进行 ThingsBoard 组件之间的所有通信。主要思想是牺牲小的性能/延迟损失,以支持持久可靠的消息传递和自动负载平衡。

分析一下每个模块之间如何通过kafka连接:

首先分析微服务版本各个模块的部署以及对应的功能:

【Thingsboard】源码分析: kafka 的微服务架构_第1张图片

【Thingsboard】源码分析: kafka 的微服务架构_第2张图片

【Thingsboard】源码分析: kafka 的微服务架构_第3张图片

三个核心组件的职责:

1.tb-core,负责处理来自于tb-ui的RESTAPI调用和 WebSocket订阅。它还负责存储有关活动设备会话和监控设备连接状态的最新信息。ThingsBoard Core 在幕后使用 Actor System 为主要实体实现 Actor:租户和设备。平台节点可以加入集群,其中每个节点负责传入消息的某些分区。

2.transport,ThingsBoard 提供基于MQTT、HTTP、CoAP和Lw

你可能感兴趣的:(Thingsboard,源码,kafka,架构,微服务)