Mqtt 系列:集群通信
每一个 MQTT
节点只负载了部分客户端,要实现消息在集群中不同客户端间的传递,必须要实现集群间的消息共享。本文便是介绍其中的实现方式。
每一个 MQTT
节点只负载了部分客户端,要实现消息在集群中不同客户端间的传递,必须要实现集群间的消息共享。本文便是介绍其中的实现方式。
在 Moquette
中使用类似 Trie
(单词查找树) 的数据结构来实现 Topic
的匹配,本文主要介绍这种数据结构。
MQTT 提供了遗嘱 Will 功能,可以在终端异常下线时,向特定的 Will Topic
发送指定的 Will Message
, 从而让第三方感知终端的异常下线。
MQTT 可以设置 Topic
Retain
消息,每当有新的订阅关系匹配时,所属的新终端便会收到该 Retain
消息。如果有需要在新建订阅时,推送一些初始化信息,可以使用该功能。
MQTT 可以设置是否持久化 Session 数据,这样可以保证终端断线之后重新上线可以恢复之前的 Session 数据。这个功能可以通过 Clean Session
设置。
MQTT 协议提供了 3 种消息服务质量等级(Quality of Service),保证了在不同的网络环境下消息传递的可靠性。本文讲解这 3 种 QoS 的实现。
参考现有一些厂商 MQTT
Broker 的实现,发现大部分都要依赖于外部系统 MQ 来实现消息的存储或转发,MQTT
Broker 仅用于终端的接入及协议的解析。在这种架构下,各结点可方便进行扩展,可应对大规模终端的接入。在小规模(几十万)的场景下,这个架构相对比较复杂。本文的目的主要是实现一个架构相对比较紧凑,且易于学习的 MQTT
Broker 服务器,该服务器不用依赖于外部系统 MQ , 自带消息的集群路由功能。
MQTT
协议是物联网中用于设备接入的一个重要协议,该序列文章将介绍 MQTT
协议相关的知识点,并在 Moquette
开源项目基础上实现一个集群版的 MQTT Broker
服务器,以供学习的目的使用。
这篇文章简要介绍 Flink TopN 计算流程。
这篇文章简要介绍 Flink 多流 Connect 操作。