前言
隨著整個汽車出行領域新四化(電氣化、智能化、網聯化和共享化)的推進,各個汽車制造廠商正逐步構建以智能駕駛和智能網聯為核心的車聯網系統(tǒng)。新一代的車聯網系統(tǒng)對于底層消息采集、傳輸和處理的平臺架構提出了更高的要求。
本系列專題的上篇文章《車聯網場景中的 MQTT 協(xié)議》中我們已經提到, MQTT 協(xié)議是目前最適合車聯網場景數據平臺搭建的通信協(xié)議。基于此,本文中我們將繼續(xù)討論車聯網場景中的 MQTT 消息采集與傳遞,以及如何構建一個千萬級車聯網 MQTT 消息平臺,以期為正在進行車聯網業(yè)務的企業(yè)用戶提供平臺架構設計參考。
車聯網的基礎:消息采集與傳遞
車聯網傳輸協(xié)議的演進
眾所周知,車聯網(vehicle-to-everything,V2X)是指車與云、車與網、車與車、車與路、車與人、車與傳感設備等交互,實現車輛與公眾網絡通信的動態(tài)移動通信系統(tǒng),是為了滿足與車有關的每一個環(huán)節(jié)中的效率、安全、管理等元素而建立起的異構通信網絡。而運行于其中的通信協(xié)議就成為車聯網系統(tǒng)建設的關鍵和核心。
在車聯網發(fā)展的歷程中,主要有兩種主流的通信技術,對車聯網整體發(fā)展起到了推動作用:
DSRC(DeDICated Short Range CommunICation,專用短程通信):1992 年由美國材料試驗學會 ASTM 針對 ETC 的業(yè)務場景研發(fā)而出,后經多年完善和迭代,演變?yōu)?IEEE(802.1X) 車聯網通信技術標準。在相當長的一段時間里,DSRC 技術是國際汽車主流生產和消費市場使用的主流車聯網通信協(xié)議。
**C-V2X(Cellular Vehicle to Everything,蜂窩車聯網通信):**C-V2X 依托現有的蜂窩基站,除了支持 PC5的直連通信,RSU、車輛均可通過 4/5G 信道(采用 Uu 接口)與 V2X 平臺相連,實現車路協(xié)同通信。較之 DSRC,C-V2X 技術上更優(yōu),它增強通信的安全性與保密性,支持高網絡容量,可支持高帶寬和大數據量需求。
DSRC 和 C-V2X 技術的競爭非常激烈,兩者都希望能夠成為主流車聯網通信標準。目前,我國擁有最完善的 5G 通信網絡的基礎設施,因此更傾向于采用 C-V2X(LTE-V 、5G-V2X)通信技術,通過 V2X 車路系統(tǒng)+單車智能系統(tǒng)的體系化建設,實現基于自動駕駛的新一代車聯網架構。
消息平臺建設對于車聯網的意義
在車聯網建設高速發(fā)展的今天,所有的主機廠業(yè)已形成了一個共識: 車聯網建設的目的不是為了聯網而聯網,也不是為了車載娛樂而聯網,聯網是為了數據。有了車聯網,就有了數據。有了數據,輔以完整的數據治理和應用體系,就有了一切。
而這個業(yè)務的目標數據,也不僅僅限于車端的相關數據。在 V2X 框架中,需要解決車與車(V2V)、車與路(V2R)、車與網(V2I)、車與云(V2C)、車與人(V2H)等的互聯互通,實現針對車、路、云、網、人的全面數據采集和分析。基于 5G 的 C-V2X 協(xié)議和通訊方式,為整個系統(tǒng)的建設提供基礎能力保障。
從傳統(tǒng)的 OTA 應用到智能座艙、高精地圖適配、厘米級定位、車機端長連接、手機端消息采集、車路云圖、車路協(xié)同等眾多新型智能應用場景,車聯網業(yè)務對于消息平臺和數據處理系統(tǒng)的需求已從原始的車云擴展為人-車-路-網-云的整體架構建設,也因此對整個消息平臺的建設提出了更高的要求。
如何建設一個海量連接、高并發(fā)吞吐、低時延的消息通信和傳輸系統(tǒng)架構,來保證整個系統(tǒng)的泛在性、便利性、高可用性、可靠性、安全性和高并發(fā)性,就成為了基于自動駕駛和車路協(xié)同場景下新一代車聯網系統(tǒng)建設的關鍵所在。
千萬級車聯網消息平臺架構設計
接下來我們將以 EMQ 的車聯網消息平臺和數據處理整體解決方案為例,介紹如何構建一個千萬級的車聯網消息平臺。
業(yè)務挑戰(zhàn)
(1) 車機、路測單元和手機端系統(tǒng)安全接入
車端需要涵蓋車機數據上報、POI 下發(fā)、推送文件、下發(fā)配置、推送消息、運營關懷等全新車聯業(yè)務,產生的海量消息 Topic 需要更加安全穩(wěn)定的接入與傳輸實現消息訂閱和發(fā)布。路端需要實現路側 RSU 的安全接入,消息采集和傳輸、地圖數據的傳輸等。
(2) 大并發(fā)消息傳遞的實時性和可靠性
高精地圖、厘米級定位、車路協(xié)同等應用場景均需要解決海量車路圖消息的毫秒級低延時和高可靠的傳輸能力保障,需要消息處理平臺具備高性能、低延時、高可靠支持千萬連接和百萬并發(fā)業(yè)務場景的能力。
(3) 豐富的應用場景集成
在以自動駕駛為核心的車聯網系統(tǒng)中,需要使用消息平臺對接各種基于人、路、圖、云相關的應用對接。將車端數據通過消息平臺同高精地圖、厘米級定位、車路協(xié)同、手機端連接等應用場景進行連接,通過消息平臺保障應用的消費供給,并提供高性能、低延時和高可靠的數據架構。
(4) 海量數據存儲、處理和分發(fā)
來自于人、車、路、云、圖、網的海量物聯網數據被采集后,需要針對這些大規(guī)模實時數據流的接入、存儲、處理、分發(fā)等環(huán)節(jié)進行全生命周期管理,為應用提供針對動態(tài)連續(xù)數據流的數據庫支撐,支持應用深度使用車聯網數據服務于消費者,進行商業(yè)決策。
整體解決方案
在方案中我們主要采用 EMQ 旗下的云原生分布式 物聯網接入平臺 - EMQX,實現車聯網系統(tǒng)中車端和人、路端的數據連接、移動和處理。EMQX 一體化的分布式 MQTT 消息服務和強大的 IoT 規(guī)則引擎,可為高可靠、高性能的物聯網實時數據移動、處理和集成提供基礎能力底座,助力企業(yè)快速構建關鍵業(yè)務的 IoT 平臺與應用。
(1) 針對車端的消息處理
EMQX 采用 MQTT 協(xié)議接入車聯系統(tǒng)。車機端通過負載均衡與 EMQX 分布式集群進行連接,EMQX 的橫向擴展能力可實現千萬級車機連接和百萬并發(fā)響應的數據通信能力。通過規(guī)則引擎,可一站式實現海量消息橋接消息隊列、持久化入庫、離線消息存儲等能力,同時提供豐富的API 原子能力北向集成。
在安全方面,EMQX 不僅支持 TLS/DTLS 或國密 GMSSL 安全協(xié)議,保障系統(tǒng)可靠與穩(wěn)定;還提供心跳監(jiān)測、遺囑消息、QoS 等級等多重保障機制,通過離線消息存儲實現在復雜的網絡環(huán)境下實時、安全、可靠的車機消息通信。
(2) 針對人、路端的消息處理
EMQX 為人、路端提供針對手機 APP、RSU 等終端的消息采集和處理平臺。基于 5G 網絡切片能力,通過個人終端和路側單元的就近接入,實現超低時延的交通信息服務。通過 MQTT 等協(xié)議將人端、路側設施感知到的路況信息推送到云控平臺,通過云控平臺融合 V2X 算法實現道路協(xié)同感知知、安全提醒、遠程協(xié)同控制等智能交通場景。
在安全方面,支持國際標準的 TLS/DTLS 加密或國密算法 GMSSL 加密,通過擴展基于 PKI/CA 證書認證體系保障人車路信息系協(xié)同的安全通信。
千萬消息接入框架模型
針對新一代車聯網場景,EMQ 千萬級連接規(guī)模和百萬級并發(fā)的整體消息接入和數據處理平臺參考架構如下:
業(yè)務場景:車聯網體系中的車輛、手機APP 端、路側 RSU 等設備等通過 MQTT 接入,實現對千萬量級的以上終端的并發(fā)接入能力。
**系統(tǒng)架構:**終端設備通過 MQTT、HTTP 等協(xié)議接入,經過負載均衡組件連接至分布式消息平臺 EMQ X。通過分布式多集群部署滿足千萬并發(fā)連接需求,按照百萬級消息吞吐能力,通過規(guī)則引擎對接 Kafka 集群實現數據的轉發(fā)。車聯網服務平臺、高精地圖服務、V2X 云控服務、定位服務和其他車輛網相關應用可以直接通過訂閱 Kafka 數據進行消費,同時 EMQ 提供了 REST、MQTT 和 MQ 消息隊列三種南向接口服務實現對車控(遠程控制)消息的雙向通信。
通過以上參考框架,EMQ 通過 EMQX 云原生分布式物聯網接入平臺可實現車聯網場景下的千萬連接、百萬并發(fā)吞吐的業(yè)務需求。
千萬級消息接入測試
測試環(huán)境和目的
某車企計劃在車聯網場景下,基于測試環(huán)境驗證 EMQX 集群的以下能力,為后續(xù)業(yè)務增長做相應的技術架構和能力支撐準備:
可支撐 1000 萬并發(fā)連接,同時支持每秒 10 萬~15 萬、payload 為 100 字節(jié)的 QoS 0 消息通過規(guī)則引擎橋接到 Kafka;
1000 萬并發(fā)連接訂閱、消費 OTA 廣播主題;
300 萬用戶同時連接不會造成集群雪崩,并測試連接所需時間。
另外,在完成上述所有測試后,繼續(xù)探索在目前配置下 1000 萬并發(fā)的同時可支持的最高消息發(fā)送并橋接轉發(fā)至 Kafka 的吞吐量(根據 EMQX 集群資源使用情況提高客戶端消息發(fā)送頻率),以及測試在 1000 萬連接下滿足 QoS 為 2 且平均響應時間在 50 毫秒內的最高消息吞吐。
測試準備
客戶端通過 TLS 加密連接負載均衡 ELB,然后在 HAProxy 對客戶端進行 TLS 終結,最后通過 TCP 連接至 EMQX 集群。通過在 HAProxy 上終結 TLS 的方式可以提高 EMQX 集群的支持能力,在這種部署模式下 EMQX 的處理能力和客戶端直接通過 MQTT TCP 連接是完全一致的。另一方面,相比 MQTT TCP 連接,客戶端通過 TLS 連接也需要消耗更多的資源,而本次測試規(guī)模為千萬級,所需的測試機數量眾多,為了減少所需測試資源的同時不影響對 EMQX集群的測試目標,本次測試將直接使用 TCP 連接。
測試場景
測試結果
以下是本次測試的結果呈現:
小結
如以上結果所示,在目前的部署架構下,可以滿足該車企對于千萬并發(fā)連接 +20 萬消息橋接至 Kafka、消息廣播及 300 萬瞬時并發(fā)連接的驗證需求。在探索測試中,1000 萬連接下測試到最高 120 萬消息 TPS(QoS 0、payload 1kB),測試持續(xù) 10 小時 EMQX 集群穩(wěn)定,CPU idle 最低至 20%,內存使用平穩(wěn)。
由以上可知,EMQX 在車聯網場景下支持千萬連接性能表現突出,架構穩(wěn)定可靠。
壓力測試工具簡介和使用
本次測試由于所需測試機數量多,管理復雜,故使用 EMQ 旗下商業(yè)版測試軟件 XMeter 性能測試平臺和 JMeter-MQTT 插件進行。
XMeter 是基于開源測試工具 JMeter 擴展的性能測試平臺。針對物聯網具有的接入規(guī)模大、彈性擴展要求、多種接入協(xié)議、混合場景等特點,XMeter 對 JMeter 進行了改造,可以支持大規(guī)模、高并發(fā)的性能測試,比如實現千萬級別的 MQTT 并發(fā)連接和消息吞吐測試。除了測試 MQTT 協(xié)議之外,還可以支持 HTTP/HTTPS 等主流的應用的測試。
JMeter-MQTT 插件是由 XMeter 實現的開源 MQTT 性能測試插件,在眾多的項目中得到了使用,目前是 JMeter 社區(qū)中流行度最高的 MQTT 插件。
寫在最后
通過本文,我們介紹了基于云原生分布式物聯網接入平臺 EMQX 的千萬級車聯網 MQTT 消息平臺架構設計,并驗證了該架構在千萬級并發(fā)連接場景環(huán)境下的性能表現,為車聯網系統(tǒng)的消息數據平臺建設提供了一種可能的設計參考。
EMQ 作為全球領先的物聯網數據基礎設施軟件提供商,致力于構建高性能、低延時、高可用、高可靠的產品,為新一代車聯網體系提供消息采集、移動、處理和分析的整體解決方案,為整車制造商、T1 供應商、后市場服務商、出行服務公司和政府管理機構的自動駕駛、智能網聯汽車業(yè)務提供基礎設施服務保障,實現人、車、路、云的智能連接。