映云科技 李枫 - 基于 EMQ 开发千万级 IoT 平台架构实践

京辰骏

2017/12/31 发布于 技术 分类

基于MQTT、CoAP协议千万级大型IoT平台与应用架构设计,包括设备连接,协议适配,消息路由,反向控制,数据桥接,认证安全,应用集成与容器部署。

文字内容
1. EMQ 开发千万级 IoT 平台架构实践 李枫 杭州映云科技公司创始人兼 CTO 2017.thegiac.com www.top100summit.com
2. Agenda ► IoT 行业发展概述 ► EMQ 开源项目与公司 ► EMQ 中间件架构与应用 ► EMQ X Platform 平台架构设计 2017.thegiac.com
3. IoT 行业发展概述 2018 全球LPWAN网络建成 2020 年联网终端超500亿 NB-IoT eMTC LoRa 1990 个人电 脑 1亿 2000 传统互联 网 10亿 2010 移动互联网 100亿 30% 终端 10% 网络 20% 平台 40% 应用服务 2017.thegiac.com 2020 物联网 500亿
4. EMQ 开源组织 ‣ EMQ - 百万级分布式物联网 MQTT 消息服务 ‣ 2013 年在 GitHub 创建: https://github.com/emqtt ‣ 目前 50+ Repos, 99 Releases, 2500+ Stars ‣ 全球 5000 用户,10000 部署,500000 下载 ‣ CNCF 云原生基金会目前国内唯一开源 IoT 项目 2017.thegiac.com
5. EMQ 开源项目 ‣ EMQ - MQTT 消息服务器 (https://github.com/emqtt/emqttd)E: Erlang -> Enterprise -> Elastic ‣ MQTT, MQTT-SN, WebSocket, CoAP, LwM2M ‣ Stomp, Modbus, JT/T 808, GBT 32960 ‣ HAProxy Protocol v2 (TLS, X.509 Certificate) ‣ EMQ is not a MQ :) 2017.thegiac.com
6. EMQ 开源项目 Cont. ‣ 客户端库:CocoaMQTT, QMQTT, emqttc ‣ 认证插件:LDAP, Redis, MySQL, Postgre, MongoDB ‣ 基础设施:esockd, ekka, ecpool, emq-docker ‣ 测试工具:mqtt-jmeter, coap-jmeter 2017.thegiac.com
7. EMQ 公司简介 ‣ 2016 年初创立,开源物联网中间件与平台解决方案 ‣ 创始团队来自华为、百度、Marvell、Amazon、Apple ‣ 总部杭州,上海、昆明、北京、法兰克福、Santa Clara ‣ 公司产品: EMQ 开源项目、企业版本和物联网平台方案 ‣ 主要服务HPE、爱立信、VMWare等大型企业和创业公 司 2017.thegiac.com
8. EMQ - MQTT 消息中间件 发布订阅(PubSub)模式消息服务器,基于主题(Topic)进行消息路由 2017.thegiac.com
9. EMQ 设计目标 ‣ 稳定承载大规模的 MQTT 终端设备,单节点(容器)支持50万 ~100万连接。 ‣ 分布式节点集群,快速低延时的消息路由,单集群支持1000 万规模路由。 ‣ 消息服务器内扩展,支持定制多种认证方式,支持桥接消息到 后端服务。 ‣ 完整物联网协议支持,MQTT、MQTT-SN、WebSocket、 CoAP 或私有协议。 2017.thegiac.com
10. EMQ = Erlang + MQTT MQTT 物联网基石协议 轻量发布订阅消息协议,针对低带宽、低功耗和不稳定网络 物联网环境设计。报文结构紧凑,1字节固定报头,2字节心 跳报文,消息QoS支持,可靠传输保证。 Erlang 高并发软实时平台 源自爱立信的电信级Erlang/OTP语言平台,Actor编程模型, 抢占式轻量进程调度,细粒度垃圾回收。软实时、低延时、 高并发、容错处理、分布集群支持。 2017.thegiac.com
11. EMQ 集群架构 电信级的架构设计 高可靠高可用集群 2017.thegiac.com
12. EMQ 节点通信 • Scalable RPC Architecture • Node Discovery and Autocluster • Network Partition and Autoheal • Node down and Autoclean • Integrate with etcd and K8S 2017.thegiac.com
13. EMQ 部署架构 EMQ + Bridge 集群的通用物联网接入架构 2017.thegiac.com
14. EMQ 性能测试 • XMeter 在线性能测试服务 • JMeter-MQTT 测试插件 • JMeter-CoAP 测试插件 • 并发连接 (Connections) • 消息吞吐 (Throughput) • 往返时延 (Latency) Powered by XMeter - 基于云、脚本化、自动 化 2017.thegiac.com
15. EMQ 测试案例 1.0.1M mobiles * 0.1M devices (QoS0) 2.0.3M mobiles * 0.3M devices (QoS0) 3.0.5M mobiles * 0.5M devices (QoS0) 4.0.8M mobiles * 0.8M devices (QoS0) 5.1M mobiles * 1M devices (QoS0) 6.1M mobiles * 1M devices (80% QoS0, 20% QoS1) 7.Radom TTL disconnect (1 – 5 min, QoS0) 8.Radom TTL disconnect (5 – 10 min, QoS0) 2 Docker Cluster @ AWS 2017.thegiac.com
16. EMQ 监控管理 2017.thegiac.com
17. EMQ 监控管理 Cont. 17 2017.thegiac.com
18. EMQ 应用场景 即时 通讯 消息 推送 共享 经济 智慧 城市 智慧 停车 物联网行业 消费、工业、电信、电力 集群千万级终端连接 资产 管理 电力 能源 智慧 农业 工业 制造 智能 安防 智能 硬件 跨平台部署 私有云、容器、物理服务器 公有云 (AWS、阿里、腾讯) 2017.thegiac.com
19. EMQ X Platform - 平台解决方案 开发 SDK EMQ X 平台 2017.thegiac.com
20. EMQ X Platform - 平台架构实践 构建大型物联网应用的 Turnkey 方案与最佳架构实践 2017.thegiac.com
21. EMQ X Platform - 平台设计原则 ‣ 分层 (Layered Architecture) ‣ 伸缩 (Massively Scalable) ‣ 高可靠 (Solid Stable) ‣ 高可用 (High Available) ‣ 微服务 (Micro Services) ‣ 消息驱动 (Message Driven) ‣ 可扩展 (Extensible) ‣ 应用使能 (Application Enablement) ‣ 任意部署 (Deploy Anywhere) 2017.thegiac.com
22. EMQ X 中间件微服务化 2017.thegiac.com
23. EMQ X Platform - 平台功能架构 ‣ 终端接入 (Connectivity) ‣ 协议适配 (Protocol Adaptor) ‣ 设备管理 (Device Management) ‣ 安全认证 (Security/AuthN/AuthZ) ‣ 消息路由 (Message Routing) ‣ 数据桥接 (Data Bridge) ‣ 事件告警 (Events and Alarms) ‣ 数据分析 (Analytics) ‣ 应用集成 (Application Integration) 2017.thegiac.com
24. EMQ X Platform - 终端接入 (Connectivity) ‣ 千万级终端设备接入与 M2M 通信规范 ‣ 各类芯片、模组、设备、网关支持 ‣ 嵌入式 OS 如 freertos, ucos, RT-Thread 支持 ‣ 2G/3G/4G/Wifi 移动/无线网络支持 ‣ LoRaWan/NB-IoT/eMTC 低功耗网络支持 2017.thegiac.com
25. EMQ X Platform - 协议适配 (Protocol Adaptor) ‣ 完整支持 MQTT、CoAP 物联网两大标 准协议 ‣ 扩展支持 MQTT-SN、WebSocket 标 准协议 ‣ LwM2M、LoRaWan 低功耗网络协议 支持 ‣ 行业标准协议,例如JT/T 808, GBT 32960 ‣ 旧网设备与企业私有 TCP/UDP 协议适 配 2017.thegiac.com
26. EMQ X Platform - 认证安全 (Security/AuthN/AuthZ) ‣ 传输层TLS、DTLS安全连接, LB 终结 SSL 支持 ‣ X.509证书、OAuth2、JWT Token 与用户名密码认证 ‣ 支持接入LDAP、HTTP、 MySQL、Redis 认证系统 ‣ 基于Topic发布订阅模式,细粒 度访问权限控制 2017.thegiac.com
27. EMQ X Platform - 设备管理 (Device Management) ‣ 设备身份管理,X.509 证书或 ClientID 身份认证 ‣ 设备开通激活管理,设备 OTA 升级 ‣ 设备状态控制,设备影子,设备 变更事件 ‣ 设备代理订阅,减少设备与云端 交互 2017.thegiac.com
28. EMQ X Platform - 消息路由 (Message Routing) ‣ 设备到云端 ‣ 云端到设备 ‣ 设备到设备 ‣ 设备到应用 ‣ 应用到设备 2017.thegiac.com
29. EMQ X Platform - 数据桥接 (Data Bridge) • MQTT, CoAP 消息数据,通过 Triggers 存储数据库 • Redis 存储离线消息、设备连接、订阅关系、状态事件 • MySQL、Postgre 存储离线消息、订阅关系、状态事 件 • MongoDB、TSDB 存储设备影子数据、海量时序数 据 • MQTT, CoAP 数据桥接 Kafka 或 RabbitMQ • 设备连接、订阅关系、消息确认事件转发 Kafka • MQTT 共享订阅方式桥接转发数据到 DataHub • EMQ 通过 Kafka 汇聚流数据到 Spark、Hadoop 2017.thegiac.com
30. EMQ X Platform - 应用集成 (Application Enablement) ‣ 1. RESTful API 接口,查询与管理设备连 接 ‣ 2. PubSub API 接口,发布订阅消息桥接 ‣ 3. Stream API 接口,数据流处理与分析 ‣ 4. Web Hook 接口,触发模式调用外部服 务 2017.thegiac.com
31. 扫码关注 EMQ 公众号 2017.thegiac.com www.top100summit.com