消息队列高手课
李玥
京东零售技术架构部资深架构师
立即订阅
8426 人已学习
课程目录
已完结 41 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (2讲)
开篇词 | 优秀的程序员,你的技术栈中不能只有“增删改查”
免费
预习 | 怎样更好地学习这门课?
基础篇 (8讲)
01 | 为什么需要消息队列?
02 | 该如何选择消息队列?
03 | 消息模型:主题和队列有什么区别?
04 | 如何利用事务消息实现分布式事务?
05 | 如何确保消息不会丢失?
06 | 如何处理消费过程中的重复消息?
07 | 消息积压了该如何处理?
08 | 答疑解惑(一) : 网关如何接收服务端的秒杀结果?
进阶篇 (21讲)
09 | 学习开源代码该如何入手?
10 | 如何使用异步设计提升系统性能?
11 | 如何实现高性能的异步网络传输?
12 | 序列化与反序列化:如何通过网络传输结构化的数据?
13 | 传输协议:应用程序之间对话的语言
14 | 内存管理:如何避免内存溢出和频繁的垃圾回收?
加餐 | JMQ的Broker是如何异步处理消息的?
15 | Kafka如何实现高性能IO?
16 | 缓存策略:如何使用缓存来减少磁盘IO?
17 | 如何正确使用锁保护共享数据,协调异步线程?
18 | 如何用硬件同步原语(CAS)替代锁?
19 | 数据压缩:时间换空间的游戏
20 | RocketMQ Producer源码分析:消息生产的实现过程
21 | Kafka Consumer源码分析:消息消费的实现过程
22 | Kafka和RocketMQ的消息复制实现的差异点在哪?
23 | RocketMQ客户端如何在集群中找到正确的节点?
24 | Kafka的协调服务ZooKeeper:实现分布式系统的“瑞士军刀”
25 | RocketMQ与Kafka中如何实现事务?
26 | MQTT协议:如何支持海量的在线IoT设备?
27 | Pulsar的存储计算分离设计:全新的消息队列设计思路
28 | 答疑解惑(二):我的100元哪儿去了?
案例篇 (7讲)
29 | 流计算与消息(一):通过Flink理解流计算的原理
30 | 流计算与消息(二):在流计算中使用Kafka链接计算任务
31 | 动手实现一个简单的RPC框架(一):原理和程序的结构
32 | 动手实现一个简单的RPC框架(二):通信与序列化
33 | 动手实现一个简单的RPC框架(三):客户端
34 | 动手实现一个简单的RPC框架(四):服务端
35 | 答疑解惑(三):主流消息队列都是如何存储消息的?
测试篇 (2讲)
期中测试丨10个消息队列热点问题自测
免费
期末测试 | 消息队列100分试卷等你来挑战!
结束语 (1讲)
结束语 | 程序员如何构建知识体系?
消息队列高手课
登录|注册

26 | MQTT协议:如何支持海量的在线IoT设备?

李玥 2019-09-24
你好,我是李玥。
IoT,也就是物联网,一直是最近几年技术圈非常火的一个概念,并且,随着 5G 大规模商用,IoT 还将持续火下去。
那到底什么是物联网呢?物联网这个词儿,它的含义还不那么直观,但你看它的英文:IoT,也就是 Internet of Things 的缩写,Things 这个单词,我们知道,它在英语里面几乎可以指代一切。翻译成中文,我个人觉得,“东西”这个词儿比较贴切。那物联网,就可以理解为把所有东西都用互联网给连接起来。
这里面不仅仅包括像电脑、手机这样的智能设备,还包括一些已经智能化的传统设备,比如汽车、冰箱、路边的摄像头等等,将来还将包括更多的、各种各样的物品:比如水杯、衣服、工业用的各种设备和工具等等,也就是所谓的万物互联。所以,IoT 它的未来绝对是大有可期的。
那这些物联网设备,它要实现互相通信,也必须有一套标准的通信协议,MQTT 就是专门为物联网设备设计的一套标准的消息队列通信协议。使用 MQTT 协议的 IoT 设备,可以连接到任何支持 MQTT 协议的消息队列上,进行通信。
这节课,我们就一起来聊一聊 MQTT 协议,以及如何把 MQTT 应用到生产系统中去。

MQTT 和其他消息队列的传输协议有什么不同?

取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《消息队列高手课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(9)

  • Geek_71a2ee
    老师,什么时候亮亮客户端如何从broke拉取消息,for,websocket,长链接,都是如何实现的,辛苦讲讲,不然没法写demo

    作者回复: 对于我们这节课的作业,实现这个Proxy你不需要自己写一个MQ的客户端,完全可以使用已有的客户端。
    比如,你的Broker是RocketMQ,Proxy可以集成RocketMQ的客户端与Broker通信就可以了。

    2019-09-25
    3
    1
  • PeterLu
    交作业:
    生产者时序图:https://github.com/PeterLu798/MQ/blob/master/src/com/lbj/mq/iot/%E7%94%9F%E4%BA%A7%E8%80%85%E6%97%B6%E5%BA%8F%E5%9B%BE.png
    消费者时序图:
    https://github.com/PeterLu798/MQ/blob/master/src/com/lbj/mq/iot/%E6%B6%88%E8%B4%B9%E8%80%85%E6%97%B6%E5%BA%8F%E5%9B%BE.png

    作者回复: 对认真完成作业的同学点个赞!

    对于消费时序图,Metadata中的数据结构是什么样呢?希望同学能细化一下。

    2019-11-05
  • Geek_e7834d
    如果iot设备的数据不多 可否把多个设备的主题合在一起。发送时候是发给一个主题 消费时候通过一个filter过滤出来。这样就可以减少主题数目了。另外 一个kafka集群能支持的topic上限一般是多少?高于这个上限就要分成不同的集群是吗?zookeeper加了observer之后 集群里最多能有多少台zookeeper呢?

    作者回复: 关于Kafka集群能支持多少个topic,这个取决的因素很多,集群的节点数量,集群规模大小,zk的配置等等,有个关于这个问题的测试,你可以看一下:https://blogs.apache.org/kafka/entry/apache-kafka-supports-more-partitions

    zk的节点数量,一般最多配置成7个,observer的场景实际上并不常用,只有一种场景才需要用到Observer:你有海量的zk客户端,大部分和zk的交互都是读操作,这种情况下才需要用Observer来支撑海量的客户端数量。

    增加ZK的节点数量并不能提升ZK的性能,写性能反而会降低,读性能也不会随着节点数量有提升,但是,节点数越多,可以支撑更多的并发读,只有这块儿性能会有提升。

    2019-10-19
  • 游弋云端
    Proxy相当于管理了多个消息队列的小集群,对外体现为一个大的消息队列集群,分而治之,这个方案赞一个!
    2019-09-26
  • Geek_71a2ee
    老师,什么时候亮亮客户端如何从broke拉取消息,for,websocket,长链接,都是如何实现的,辛苦讲讲,不然没法写demo
    2019-09-25
  • 业余草
    mqtt是云厂商必争之地,作为小公司,用好云厂商提供的技术即可,没资源造轮子!
    2019-09-25
  • 海罗沃德
    楊波老師的為服務課程裡也講了sticky session
    2019-09-24
  • 海罗沃德
    今天作業相當有難度
    2019-09-24
  • leslie
    上班路上先看完课程,下班回家试试去;不过最初的尝试估计都蛮差蛮糟糕的-试试呗。
    2019-09-24
收起评论
9
返回
顶部