emqttd 0.9.0-alpha版本正式发布,该版本改进内容包括: MQTT连接会话(Session)管理 每个MQTT客户端连接,不管是否持久的(Persistent),都启动一个连接会话进程。由该会话进程管理:
MQTT客户端连接可以resume在其他集群节点上的会话(Session)。 消息队列(Message Queue)和飞行窗口(Inflight Window) 每个MQTT会话创建一个简单的内存消息队列,和一个正在处理消息的飞行窗口。 设计如下: |<----------------- Max Len ----------------->| ----------------------------------------------- IN -> | Pending Messages | Inflight Window | -> Out ----------------------------------------------- |<--- Win Size --->|
新增扩展Hooks
全局唯一的消息ID每一条QoS1/2消息,分配一个全局唯一的、时间序列的消息ID,用于端到端的消息处理。 PktId <-- --> MsgId <-- --> MsgId <-- --> PktId |<--- Qos --->|<---PubSub--->|<-- Qos -->| 全局唯一消息ID结构: -------------------------------------------------------- | Timestamp | NodeID + PID | Sequence | |<------- 64bits ------->|<--- 48bits --->|<- 16bits ->| --------------------------------------------------------
完善MQTT V3.1.1协议支持4.4章节的消息发布重传 - Message delivery retry(#166) 4.6章节的消息发布顺序保证 - Message ordering(#167) 新增告警管理(Alarm Management)emqttd_alarm模块可以发布JSON格式告警消息到'$SYS/brokers/+/alarms/#'的系统Topic 项目代码结构调整合并emqtt, emqttd应用,调整代码结构,以便其他Erlang项目嵌入emqttd消息服务器。 |