zoukankan      html  css  js  c++  java
  • kafka 、mqtt、modbus 消息模型

    kafka mqttmodbus 消息模型 

    一、MQTT  

    MQTT 服务质量(QoS

    服务质量(QoS)级别是一种关于发送者和接收者之间信息投递的保证协议。

    有三种 QoS级别:

    至多一次:0

    至少一次:1

    只有一次:2

    QoS 0 至多一次:

    0 是最低级别,具有最高传输性能,接收者不应答,发送者也不保存和重发消息。

    QoS 1 至少一次:

    1 级别,可以保证消息至少被送达接收者一次。但也能被送达多次。

    发送者会保存消息,直到收到接收者发送的puback格式的应答命令。

    系统通过对比包的标识符来确定一对publish puback 的完成情况。规定时间内没收到 puback,发送者重发publish消息。

    例: 假如broker 收到消息,它会将消息投递给所有此消息订阅者,饭后向发布者应答一个 puback

    重复(DUP)标志会在publish 被重发时设置,标志只用作程序内部,不会被broker处理,也不会被客户端处理。无论重复(DUP)标志如何,接收者都会发送一个puback应答。

    2 级别 是最高级别。保证每条消息只被接收一次。最安全,也最慢。其通过发送者和接收者的两次对话来实现。

    QoS降级

    发送端 brokerQoS级别由发送端定义,broker到接收端的QoS级别由接收端定义。

    对于同一个客户端来说,每一个数据包的标识符都是唯一的。

    同一客户端和broker之间每一个数据包的标识符都是唯一的。如果通信流程执行完毕,那么相同的标识符就可以被复用。

    QoS 1 QoS 2 的队列,发送给掉线设备的消息将会存储起来,直到设备再次可用。但是队列只在客户端使用持久化时才会产生。

    二、Modbus

    modbus 驱动程序接受数据,无需关心数据是否接受完毕,只要有数据发过来,都收到缓冲区。然后再应用层开启任务定时扫描缓冲区的新数据,通过帧头帧尾标识符校验等判断接受帧的正确性。正确再处理,不正确丢弃。

    三、Kafka

    1kafka 有两种常用消息模型

    队列模型(queuing) 和发布-订阅模型(publish-subscribe

    队列模型: 一组消费者从服务器读取消息,一条消息只由其中一个消费者来处理。

    发布-订阅模型:消息被广播给所有消费者,接收到消息的消费者都可以处理此消息。

     2kafka 的消费者和消费者组

    kafka为两种模型提供了单一的消费者抽象模型:消费者组

    假如 所有消费者都在一个组中,那么就是 队列模型

    假如 所有消费者都在不同的组中,那么就是 发布 订阅模型

  • 相关阅读:
    461. Hamming Distance
    342. Power of Four
    326. Power of Three
    368. Largest Divisible Subset java solutions
    95. Unique Binary Search Trees II java solutions
    303. Range Sum Query
    160. Intersection of Two Linked Lists java solutions
    88. Merge Sorted Array java solutions
    67. Add Binary java solutions
    14. Longest Common Prefix java solutions
  • 原文地址:https://www.cnblogs.com/wgy1/p/11611002.html
Copyright © 2011-2022 走看看