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