前言

百度IoT的Broker设计我特别想参考的但是技术能力和时间不够去实现……网上只有一篇百度工程师的总结《共享行业的分布式MQTT设计》,这里将围绕这篇文章去讲解。

一、Broker集群架构

单机版MQTT Broker有连接数量和并发处理能力的限制,因此分布式必不可少。百度IoT采用的Akka Cluster来做集群管理,每个节点对等,不存在像Mosquitto这种用一台机器“桥接”做分布式产生的单点故障隐患。每个节点监听MemberUp、MemberDown、MemberUnreachable、ClusterMemberState等事件来感知其他节点的上下线,用Akka Actor实现节点间的消息通信。

二、Broker服务框架

百度Broker抽象了很多服务包括:

(1)Authentication Service、Authorization Service

MQTT的CONNECT阶段提供username和password,Broker可以用这些数据对客户端身份进行校验,我们称为验证(Authentication,AE);MQTT的PUBLISH、SUBSCRIBE阶段,需要对客户端订阅主题、发布主题进行权限控制,比如只能订阅含有自己DeviceID的主题,避免客户端订阅他人的主题窃听信息,我们称为鉴权(Authorization,AO)。

百度Broker提供用户名、密码的认证,以及每个客户端对哪些主题可读、可写。实现上,数据全保存在Mysql,通过内存或Redis做Cache加速,Cache回收策略为LRU。

百度这样的做法只适合于固定权限的控制,比如设备拥

iot架构 mqtt netty_百度IoT:MQTT Broker架构设计相关推荐

  1. iot架构 mqtt netty_Netty实现高性能IOT服务器(Groza)之手撕MQTT协议篇上

    前言 诞生及优势 MQTT由Andy Stanford-Clark(IBM)和Arlen Nipper(Eurotech,现为Cirrus Link)于1999年开发,用于监测穿越沙漠的石油管道.目标 ...

  2. MQTT.fx 模拟 IoT 设备接入阿里云企业物联网平台

    MQTT.fx是一款基于Eclipse Paho SDK,使用Java语言编写的MQTT客户端,支持Windows.Mac和Linux操作系统,可用于验证设备是否可与物联网平台正常连接,并基于 Top ...

  3. esp32使用mqtt接入百度云服务

    接入百度云服务 前言 什么是mqtt mqtt主要功能 对接mqtt服务 物联网平台介绍 百度iot物联网平台 mtqq.fx模拟接入 esp32使用mqtt 前言 由于微信对接mqtt服务需要服务器 ...

  4. MQTT | Windows + mosquitto搭建MQTT Broker(本地服务器)与MQTTX客户端联调

    文章目录 一.前言 二.mosquitto 2.1.安装 2.2.修改mosquitto.conf配置文件 2.2.1.listener 2.2.2.allow_anonymous 2.2.3.pas ...

  5. IOT技术专家伏治军谈IOT技术发展趋势

    面对广袤的物联网市场和高度碎片化的物联网技术现实,即使当下的我们身处物联网行业内,也难以把握它的全貌和发展趋势.因此,最近我们联系了物联网行业内的技术开拓者和领军人物伏治军先生,听听从这个行业在国内早 ...

  6. 如何订阅MQTT服务器历史消息,mqtt集群订阅如何只消费一个(一次)消息?

    共享订阅 在实践中我们的业务系统集成是集群存在,对于mqtt消息,如果没有做特殊处理,那么集群中每个服务只要订阅了mqtt中的一个主题,那么每台服务器都会进行消费.不仅浪费资源,还限制了服务的处理上限 ...

  7. MQTT学习之初识mqtt

    MQTT MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级协议,该协议构 ...

  8. Mqtt开发笔记:Mqtt服务器搭建

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  9. java连接MQTT服务器(Springboot整合MQTT)

    一.业务场景 硬件采集的数据传入EMQX平台(采用MQTT协议),java通过代码连接MQTT服务器,进行采集数据接收.解析.业务处理.存储入库.数据展示. MQTT 是基于 发布(Publish)/ ...

最新文章

  1. Go 学习笔记(62)— Go 中 switch 语句中的 switch 表达式和 case 表达式之间的关系
  2. CSS实现超过一定的宽度添加省略
  3. 深入讲解MPLS/×××技术原理
  4. 谈谈Java基础数据类型
  5. docker log 文件 清理
  6. 三元表达式列表解析生成器表达式
  7. regression+classification
  8. @ font-face 引入本地字体文件
  9. c 语言 strcmpy的实现
  10. zk里面调用javascript方法
  11. 服务器电源常见故障判断及处理方法
  12. TCP的粘包问题以及数据的无边界性
  13. #扒一扒网易云课堂python课程,发现还是有不少可以白嫖的免费好资源
  14. XMLConstants.FEATURE_SECURE_PROCESSING错误
  15. 怎样在ps中制作对话气泡?一招教你轻松解决
  16. Python项目实战:爬取图虫创意优质高清壁纸图
  17. 修复 yum 坏掉 报错There was a problem importing one of the Python modules 教程
  18. 第十三章 相关方管理 权利利益方格 凸显模式 相关方立方体 相关方登记册 相关方参与评估矩阵
  19. base64接收图片
  20. 蛋蛋读UFS之二:UFS协议栈

热门文章

  1. node项目部署https服务
  2. python win32处理Excel(基础篇)
  3. JS中正则表达式常用语法总结
  4. poi 读取word 遍历表格和单元格中的图片
  5. 目标定位算法(二)之基于测距的定位算法
  6. 如何在pdf中加入手写签名
  7. 使用第三方软件管理苹果设备
  8. java代理(静态代理和jdk动态代理以及cglib代理)
  9. 亲测好用的6个临时邮箱推荐
  10. Py西游攻关之IO model