iot架构 mqtt netty_百度IoT:MQTT Broker架构设计
前言
百度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架构设计相关推荐
- iot架构 mqtt netty_Netty实现高性能IOT服务器(Groza)之手撕MQTT协议篇上
前言 诞生及优势 MQTT由Andy Stanford-Clark(IBM)和Arlen Nipper(Eurotech,现为Cirrus Link)于1999年开发,用于监测穿越沙漠的石油管道.目标 ...
- MQTT.fx 模拟 IoT 设备接入阿里云企业物联网平台
MQTT.fx是一款基于Eclipse Paho SDK,使用Java语言编写的MQTT客户端,支持Windows.Mac和Linux操作系统,可用于验证设备是否可与物联网平台正常连接,并基于 Top ...
- esp32使用mqtt接入百度云服务
接入百度云服务 前言 什么是mqtt mqtt主要功能 对接mqtt服务 物联网平台介绍 百度iot物联网平台 mtqq.fx模拟接入 esp32使用mqtt 前言 由于微信对接mqtt服务需要服务器 ...
- 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 ...
- IOT技术专家伏治军谈IOT技术发展趋势
面对广袤的物联网市场和高度碎片化的物联网技术现实,即使当下的我们身处物联网行业内,也难以把握它的全貌和发展趋势.因此,最近我们联系了物联网行业内的技术开拓者和领军人物伏治军先生,听听从这个行业在国内早 ...
- 如何订阅MQTT服务器历史消息,mqtt集群订阅如何只消费一个(一次)消息?
共享订阅 在实践中我们的业务系统集成是集群存在,对于mqtt消息,如果没有做特殊处理,那么集群中每个服务只要订阅了mqtt中的一个主题,那么每台服务器都会进行消费.不仅浪费资源,还限制了服务的处理上限 ...
- MQTT学习之初识mqtt
MQTT MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级协议,该协议构 ...
- Mqtt开发笔记:Mqtt服务器搭建
若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...
- java连接MQTT服务器(Springboot整合MQTT)
一.业务场景 硬件采集的数据传入EMQX平台(采用MQTT协议),java通过代码连接MQTT服务器,进行采集数据接收.解析.业务处理.存储入库.数据展示. MQTT 是基于 发布(Publish)/ ...
最新文章
- Go 学习笔记(62)— Go 中 switch 语句中的 switch 表达式和 case 表达式之间的关系
- CSS实现超过一定的宽度添加省略
- 深入讲解MPLS/×××技术原理
- 谈谈Java基础数据类型
- docker log 文件 清理
- 三元表达式列表解析生成器表达式
- regression+classification
- @ font-face 引入本地字体文件
- c 语言 strcmpy的实现
- zk里面调用javascript方法
- 服务器电源常见故障判断及处理方法
- TCP的粘包问题以及数据的无边界性
- #扒一扒网易云课堂python课程,发现还是有不少可以白嫖的免费好资源
- XMLConstants.FEATURE_SECURE_PROCESSING错误
- 怎样在ps中制作对话气泡?一招教你轻松解决
- Python项目实战:爬取图虫创意优质高清壁纸图
- 修复 yum 坏掉 报错There was a problem importing one of the Python modules 教程
- 第十三章 相关方管理 权利利益方格 凸显模式 相关方立方体 相关方登记册 相关方参与评估矩阵
- base64接收图片
- 蛋蛋读UFS之二:UFS协议栈