。
千万级车联网消息平台架构设计
接下来我们将以 EMQ 的车联网消息平台和数据处理整体解决方案为例,介绍如何构建一个千万级的车联网消息平台。
■ 车机、路测单元和手机端系统安全接入
车端需要涵盖车机数据上报、POI 下发、推送文件、下发配置、推送消息、运营关怀等全新车联业务,产生的海量消息 Topic 需要更加安全稳定的接入与传输实现消息订阅和发布。路端需要实现路测 RSU 的安全接入,消息采集和传输、地图数据的传输等。
■ 大并发消息传递的实时性和可靠性
高精地图、厘米级定位、车路协同等应用场景均需要解决海量车路图消息的毫秒级低延时和高可靠的传输能力保障,需要消息处理平台具备高性能、低延时和高可靠支持千万连接和百万并发业务场景的能力。
■ 丰富的应用场景集成
在以自动驾驶为核心的车联网系统中,需要使用消息平台对接各种基于人、路、图、云相关的应用对接。将车端数据通过消息平台同高精地图、厘米级定位、车路协同、手机端连接等应用场景进行连接,通过消息平台保障应用的消费供给,并提供高性能、低延时和高可靠的数据架构。
■ 海量数据存储、处理和分发
来自于人、车、路、云、图、网的海量物联网数据被采集后,需要针对这些大规模实时数据流的接入、存储、处理、分发等环节进行全生命周期管理,为应用提供针对动态连续数据流的数据库支撑,支持应用深度使用车联网数据服务于消费者,进行商业决策。
在方案中我们主要采用 EMQ 旗下的云原生分布式物联网接入平台 EMQ X,实现车联网系统中车端和人、路端的数据连接、移动和处理。EMQ X 一体化的分布式 MQTT 消息服务和强大的 IoT 规则引擎,可为高可靠、高性能的物联网实时数据移动、处理和集成提供基础能力底座,助力企业快速构建关键业务的 IoT 平台与应用。
■ 针对车端的消息处理
参考架构
■ 针对人、路端的消息处理
参考架构
■ 千万消息接入框架模型
针对新一代车联网场景,EMQ 千万级连接规模和百万级并发的整体消息接入和数据处理平台参考架构如下:
业务场景:车联网体系中的车辆、手机APP 端、路侧 RSU 等设备等通过 MQTT 接入,实现对千万量级的以上终端的并发接入能力。
系统架构:终端设备通过 MQTT、HTTP 等协议接入,经过负载均衡组件连接至分布式消息平台 EMQ X。通过分布式多集群部署满足千万并发连接需求,按照百万级消息吞吐能力,通过规则引擎对接 Kafka 集群实现数据的转发。车联网服务平台、高精地图服务、V2X 云控服务、定位服务和其他车辆网相关应用可以直接通过订阅 Kafka 数据进行消费,同时 EMQ 提供了 REST、MQTT 和 MQ 消息队列三种南向接口服务实现对车控(远程控制)消息的双向通信。
通过以上参考框架,EMQ 凭借 EMQ X 云原生分布式物联网接入平台可实现车联网场景下的千万连接、百万并发的业务需求。
某车企计划在车联网场景下,基于测试环境验证 EMQ X 集群的以下能力,为后续业务增长做相应的技术架构和能力支撑准备:
可支撑 1000 万并发连接,同时支持每秒 10 万~15 万、payload 为 100 字节的 QoS 0 消息通过规则引擎桥接到 Kafka;
1000 万并发连接订阅、消费 OTA 广播主题;
300 万用户同时连接不会造成集群雪崩,并测试连接所需时间。
另外,在完成上述所有测试后,继续探索在目前配置下 1000 万并发的同时可支持的最高消息发送并桥接转发至 Kafka 的吞吐量(根据 EMQ X 集群资源使用情况提高客户端消息发送频率),以及测试在 1000 万连接下满足 QoS 为 2 且平均响应时间在 50 毫秒内的最高消息吞吐。
测试架构
客户端通过 TLS 加密连接负载均衡 ELB,然后在 HAProxy 对客户端进行 TLS 终结,最后通过 TCP 连接至 EMQ X 集群。通过在 HAProxy 上终结 TLS 的方式可以提高 EMQ X 集群的支持能力,在这种部署模式下 EMQ X 的处理能力和客户端直接通过 MQTT TCP 连接是完全一致的。另一方面,相比 MQTT TCP 连接,客户端通过 TLS 连接也需要消耗更多的资源,而本次测试规模为千万级,所需的测试机数量众多,为了减少所需测试资源的同时不影响对 EMQ X集群的测试目标,本次测试将直接使用 TCP 连接。
以下是本次测试的结果呈现:
由以上可知,EMQ X 在车联网场景下支持千万连接性能表现突出,架构稳定可靠。
本次测试由于所需测试机数量多,管理复杂,故使用 EMQ 旗下商业版测试软件 XMeter 性能测试平台和 JMeter-MQTT 插件进行。
XMeter
JMeter-MQTT 插件是由 XMeter 实现的开源 MQTT 性能测试插件,在众多的项目中得到了使用,目前是 JMeter 社区中流行度最高的 MQTT 插件。
XMeter 官网和试用地址: https://www.xmeter.net
XMeter MQTT 插件下载: https://github.com/xmeter-net/mqtt-jmeter
jmeter/tree/master/Download/v2.0.2
JMeter 下载地址: https://jmeter.apache.org
通过本文,我们介绍了基于云原生分布式物联网接入平台 EMQ X 的千万级车联网 MQTT 消息平台架构设计,并验证了该架构在千万级并发连接场景环境下的性能表现,为车联网系统的消息数据平台建设提供了一种可能的设计参考。
We are hiring! Join us and Code the Future together.
联系客服