基于 Rust 语言编写的可编程的全球分布式 MQTT 服务器

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 基于边缘架构的可编程MQTT服务 网聚云联 王文庭
2.
3.
4. O1 背景说明 CONTENTS O2 HPMQ简介 O3 HPMQ开发说明 O4 HPMQ未来规划
5. 1. 背景说明
6. 物联网时代带来的变化 海量 连网 设备 海量数据处理? 原来以数据中 心为核心的云 端架构是否还 满足需求? 共性:边缘 设备安全性?
7. 边缘架构 可在边缘直接对数据进行相 关的计算(处理/存储)并提 供相应的查询功能 02 一种分布式计 算架构 01 03 边缘架构 构成边缘 计算架构 的核心
8. 物联网设备的纽带
9. 2. HPMQ 简介
10. HPMQ ( H yperconverged P rogrammable MQ TT) HPMQ是基于Rust语言开发的 下一代可编程边缘分布式 MQTT软件,主要有以下几个 核心特性: • Geo-Distributed • 可编程性 • 云边一体化 • 兼容异构设备
11. Why Rust? • 性能(C/C++/Rust) • 开发效率 (Rust/Golang/Java) • 编译的产物要足够小(C/C++/Rust) • 内存安全(Rust/Golang/Java) • 对WebAssembly生态支持友好
12. 为什么需要geo-distributed 传统方案存在有问题 • • • 云端架构,我们无法根据设备地理位置实现就近通讯 只能做到在数据中心内相关的分布式扩展,无法直接进行 全球节点的扩展 复杂的容灾方案 解决方案 geo-distributed架构 + 调度
13. 如何管理分布式网络 我们主要基于eclipse-zenoh来做二次开 发,eclipse-zenoh是一款很优秀的rust 语言编写的,基于边缘架构的,开源分 布式消息服务基础架构,它帮我们解决 了很多分布式网络管理的共同的问题, 比如说分布式消息一致性问题,边缘节 点自动发现等问题
14. 场景:设备就近接入/处理 传统方案痛点 1)数据传输量大,中心压力大,高可用要求高 2)数据发布与订阅都在中心,延迟高 3)源站直接暴露 4)数据不好就近进行脱敏处理 5)数据不好就近进行存储 新方案优势 1)分摊中心压力 2)降低延迟 3)隐藏源站 4)边缘计算 5)边缘存储
15. 为什么需要可编程性 带来什么好处? 一句话概括,让设备具备边缘计算的能力。目前主要提供两种接入方式: 1)设备对接内置HPMQLite程序 上层MQTT Broker 2)设备通过MQTT协议透明接入 上层MQTT Broker HPMQ 设备 程序 mqtt HPMQLite 设备 程序
16. 场景:多厂商协议快速兼容 通过边缘函数的方式快速兼容多厂商 1)自定义协议+自定义函数 2)对接标准协议+公共函数
17. geo-distributed + 函数式开发 = 边缘计算
18. 整体架构
19. 什么是Webassembly? • Webassembly,简称wasm • 用一句话描述,那就是Webassembly是执行程序的标准化字节码格式 • Webassembly最初被发明,是用于Web浏览器。 • 由W3C工作组开发的Web浏览器标准,于2017年11月, Chrome,Firefox,Microsoft Edge,Safari四大浏览器都开始实验性的支持 • 它在浏览器以外也有很广泛的运用,特别是在边缘计算领域。 • 支持多语言开发,比如Go,Python, rust,Javascript等
20. Serverless in MQTT Broker 1. 所需求运行资源小( ~64Kb for code and ~10Kb RAM ) 2. 异构设备兼容性强( x86, ARM, RISC-V, MIPS, Raspberry Pi, Orange Pi … )
21. Wasm vs Docker • 更好的代码执行环境抽象 ,它可以直接部署代码或应用程序到各种异构设备,而不需要开 发人员为每个异构设备都编写或编译一套单独的代码或程序,从而提高开发效率; • 更好的安全机制 ,Docker 之类的容器最让人诟病的问题之一就是安全性; • 更低的内存和资源消耗 ,Wasm 运行时所需的资源比 Docker 之类的容器要少很多; • 更快的冷启动时间 ,Wasm的冷启动时间为微秒,比 Docker 的秒级启动快不少; • 更小的运行时依赖 ,Docker整体包大小还是偏大,并且依赖的东⻄偏多,很难在一些资源 受限的设备上跑起来;
22. wasm如何分发部署? • Kubedge? • OpenYurt? • Krustlet?
23. 3. HPMQ函数开发说明
24. 使用流程 HPMQ平台 配置 联 关 公共函数 ( 比如:tb2aws ) 触发器 关 联 私有函数
25. 编写函数
26. 发布函数 Hpmqfile hpmq-cli build OCI镜像 hpmq-cli push 镜像仓库
27. Demo
28. 4. HPMQ未来规划
29. 开源(https://github.com/wangjuyunlian/hpmq) 基于零信任架构实现远程设备访问 消息边缘存储
30.
31. 发个招聘小广告 ( rust/c/c++岗位 ) 但愿诸贤集鹭汉, 书生穷死胜侯封

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-16 00:40
浙ICP备14020137号-1 $Carte des visiteurs$