亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于Camel的車聯(lián)網消息路由轉發(fā)方案的設計

        2021-01-27 03:33:46胡晨光
        物聯(lián)網技術 2020年12期
        關鍵詞:標識符隊列目的地

        胡晨光

        (中國電子科技集團公司 第三十八研究所,安徽 合肥 230088)

        0 引 言

        目前,接入車聯(lián)網的電動汽車日益增多,車輛上報數(shù)據呈爆炸式增長[1-2]。按照國家安全監(jiān)管相關要求,電動汽車的消息數(shù)據必須上報至國家平臺[3],以便車輛銷售地區(qū)管理部門實時獲取本地車輛運行狀態(tài)。此外,商用電動汽車的購買企業(yè)需要實時掌握車輛所處位置及車輛電池等信息[4];提供公共服務的第三方企業(yè),如充電樁企業(yè)、電網公司等[5],為更好服務車主,要求車聯(lián)網平臺將車輛信息接入其企業(yè)平臺。因此要求電動汽車上報的消息數(shù)據能夠及時轉發(fā)至多個平臺。

        盡管通過文件配置和條件編碼編寫的路由轉發(fā)服務程序可以實現(xiàn)上述功能,但由于接入車輛不斷增加,且政府和企業(yè)對數(shù)據接入的需求不同,導致傳統(tǒng)路由轉發(fā)程序復雜,不宜維護。此外,單體轉發(fā)程序會帶來路由轉發(fā)程序的相互影響,一旦某一轉發(fā)邏輯出現(xiàn)問題,將影響其他轉發(fā)流程的進行,導致客戶體驗較差。

        本文通過對消息路由目的地進行分類,利用Apache Camel框架編寫路由規(guī)則[6],采用并串行數(shù)據處理方式,以提高路由效率和系統(tǒng)擴展性。采取微服務架構開發(fā)和部署路由轉發(fā)模式,通過獨立部署運行實現(xiàn)一個路由服務實例對應多個轉發(fā)服務實例。轉發(fā)服務與第三方平臺實行一對一服務,避免轉發(fā)服務相互影響,在提高系統(tǒng)魯棒性的同時也便于人員維護。

        1 設計方案

        車聯(lián)網消息路由轉發(fā)方案根據車輛的轉發(fā)目的地平臺要求,數(shù)據經由路由服務發(fā)向不同的消息主題隊列中,再通過轉發(fā)服務發(fā)送至各目的地平臺。本方案涉及兩個核心服務,即路由服務和轉發(fā)服務。

        1.1 總體架構

        數(shù)據路由轉發(fā)方案總體架構如圖1所示。

        圖1 數(shù)據路由轉發(fā)方案總體架構

        由圖1可知,路由轉發(fā)方案由一個消息隊列組件和兩項服務組成。其中,消息隊列組件[7]選用Apache ActiveMQ。車輛消息經過路由服務處理后,由路由器發(fā)向不同消息目的地的主題隊列。各轉發(fā)服務從各自主題隊列中讀取消息,再轉發(fā)至外部第三方服務平臺。

        1.1.1 方案組成部分說明

        (1)消息隊列組件

        消息隊列組件是系統(tǒng)中消息交換的中間子系統(tǒng)[8],用于存儲向外部提供的主題消息。消息隊列組件既支持主題消息寫入,也支持主題消息讀取。將消息的生產和消費過程解耦,以提高系統(tǒng)的并發(fā)能力和擴展性。此外,消息隊列組件具有“削峰填谷”的作用,若瞬間大量消息涌入系統(tǒng),且超過系統(tǒng)的消費服務處理能力,那么消息隊列組件將緩存未處理的數(shù)據,待消息生產速度降低或消費服務能力提升后,再將緩存消息發(fā)送給消費者。

        (2)消息路由服務

        按照車輛配置的消息目的標識符將消息轉發(fā)至消息隊列的不同主題中[9]。對于消息隊列組件而言,消息路由服務是消息的生產者,由加載器、消息提取器、處理器、路由器組成。加載器在路由服務啟動時加載車輛的配置信息,形成路由表;消息提取器按照消息的格式協(xié)議提取本條消息所屬的車輛信息及消息的版本信息;處理器從消息中提取出車輛信息,找到其路由條目并進行消息轉換;路由器將本消息路由至不同的主題消息隊列中。

        (3)消息轉發(fā)服務

        消息轉發(fā)服務是由多個獨立的消息轉發(fā)服務實例組成[10]。每個消息服務實例對應一個外部第三方平臺,按照外部平臺的接入要求,實現(xiàn)消息的轉發(fā)。轉發(fā)服務組件包括消息轉換模塊和消息轉發(fā)模塊。其中,消息轉換模塊是將本地消息格式轉換成外部平臺的消息格式;消息轉發(fā)模塊則通過TCP或HTTP等方式把消息發(fā)送給第三方平臺。

        1.1.2 路由服務流程

        路由服務啟動時,由加載器從外部系統(tǒng)中加載車輛的配置信息,如車輛的VIN碼、T-BOX標識符、售賣地、所屬單位等,然后將配置信息組合成消息目的標識符,并建立車輛路由表。同時,車輛路由表也是車輛VIN碼、T-BOX標識符和目的標識符組成的Key-Value對應表。當收到一條車輛消息時,消息提取器提取出消息的協(xié)議版本,并根據此版本解析出消息所屬車輛的VIN碼或T-BOX標識符,之后再組合成路由表中的Key值,然后根據Key值查找消息目的標識符。處理器解析消息目的標識符,并將其分割成多個路由標識符類發(fā)送至路由器。路由器將路由標識符類按路由規(guī)則轉發(fā)至消息隊列中的目的地主題隊列,實現(xiàn)消息的路由過程。

        1.1.3 轉發(fā)服務流程

        轉發(fā)服務流程從主題隊列中提取消息,解析出目的地平臺所需要的數(shù)據(地理數(shù)據等),再經過消息轉換模塊將其轉換成第三方平臺的消息協(xié)議格式。在此過程中,按照目的地平臺的要求,需要增加或過濾車輛上報信息,以滿足平臺車輛上報數(shù)據的時序要求。最后,將數(shù)據進行轉換并發(fā)送到內部轉發(fā)隊列,再由轉發(fā)模塊轉發(fā)到指定的目的地平臺中。

        1.2 關鍵設計

        1.2.1 消息目的標識符

        按照車輛各類目的地平臺轉發(fā)要求,可以將其分為三類:國家政府類平臺、地方政府類平臺、企業(yè)類平臺。其中,國家政府類平臺出于安全監(jiān)管的目的,對全國車輛進行監(jiān)控;地方政府類平臺只監(jiān)控在本地銷售的車輛運行狀態(tài),一般一個省或直轄市是一個監(jiān)管平臺;企業(yè)類平臺主要監(jiān)控本企業(yè)購買和運營車輛的運行狀態(tài)。此外,上述三類平臺各自包括多個獨立平臺,如國家政府類平臺還包括質監(jiān)局平臺、商用車平臺等。國家政府類平臺和地方政府類平臺數(shù)量可控,企業(yè)類平臺數(shù)量較多。在國家政府類平臺中,車輛上報消息數(shù)據可能會同時發(fā)送至多個獨立平臺,而在地方政府類平臺和企業(yè)類平臺中,車輛上報信息數(shù)據只發(fā)送給本類平臺中的其中一個監(jiān)管平臺?;诖?,結合空間和效率,本設計將每個車輛的消息目的標識符設置為一個32位的整型變量。消息目的地標識符定義如圖2所示。

        圖2 消息目的地標識符定義

        (1)地方政府類段占據0~7位,最大可標識255個城市或省份;

        (2)國家段占據8~11位,信息可同時發(fā)送到國家類平臺的多個獨立平臺,但目前只支持4個國家平臺;

        (3)企業(yè)段是高16位,如1代表運輸企業(yè),2代表銀行企業(yè)等,最多支持65 535家企業(yè);

        (4)保留區(qū)為4位,其可支持企業(yè)平臺類段或者國家政府類段的擴展。

        1.2.2 路由規(guī)則

        消息分段路由流程如圖3所示。

        圖3 消息分段路由流程

        根據目的地平臺轉發(fā)分類特點建立路由規(guī)則。首先判斷國家類字段,如果此字段為0,則轉到判斷地方政府字段;如果該字段非0,則按位依次判斷,其中某一位為1時,將信息轉發(fā)至相應的“國家+數(shù)值”名稱的主題隊列中。

        地方政府字段非0時,依次判斷其余位是否為1,為1則轉發(fā)至“地方+數(shù)值”名稱的隊列中。企業(yè)類字段處理與地方政府字段處理流程基本一致。

        以上隊列名稱可根據需要設定具體名稱,如“國家4隊列”可命名為“國家質監(jiān)局隊列”。如果地方政府類和企業(yè)類隊列較多,則無需為每個隊列命名,簡化處理后直接將消息轉發(fā)至“地方(企業(yè))+數(shù)值”的隊列中。

        2 方案實現(xiàn)

        2.1 Camel簡介

        Apache Camel是基于企業(yè)集成模式(EIP)、整合了數(shù)百種第三方組件而建立的開源集成框架。其可為消息處理過程提供便捷的消費、計算和存儲框架,在軟件設計框架領域應用廣泛。本文利用其強大的規(guī)則引擎實現(xiàn)復雜的路由策略。

        2.2 路由實現(xiàn)

        路由實現(xiàn)基于車輛消息在消息隊列中(如ActiveMQ,路由服務從隊列中讀取該消息并提取車輛VIN碼)找到與之對應的消息目的標識符。消息目的標識符經過路由處理后,將其發(fā)送到不同的主題隊列中。

        在做條件判斷之前,需要將消息目的標識符分割為國家類段、地方政府類段、企業(yè)類段,然后分別對三段標識符進行判斷。該過程邏輯的目的是實現(xiàn)Camel的Processor接口,將其命名為SeperatorDestinationTagProcessor處理過程。消息協(xié)議轉換處理類的目的同上。

        為了編寫路由,必須繼承RouterBuilder類并將其命名為UploadMessageRouter,重寫Configure函數(shù)并在其中編寫路由規(guī)則。整合上述Processor處理類,利用choice、when、otherwise取代傳統(tǒng)代碼中的if-else,形成流式處理方法。

        并行轉發(fā)數(shù)據時,采用Camel方式實現(xiàn)的路由規(guī)則無需進行額外線程操作,只需增加一行ParallelProcessing()即可實現(xiàn)并行發(fā)送。此外,把數(shù)據轉發(fā)至文件或其他消息隊列(如Kafka)時,只需創(chuàng)建文件或Kafka訪問端點,然后在to中導入訪問端點即可。

        3 結 語

        本文介紹了一種基于Camel框架的車聯(lián)網消息路由轉發(fā)方案。通過采用路由轉發(fā)服務分離設計,對轉發(fā)目的地平臺類型進行梳理,引入消息隊列組件,之后利用Camel強大的規(guī)則引擎實現(xiàn)順序和并行消息路由規(guī)則與路由轉發(fā)方案。此方案較之傳統(tǒng)的條件判斷方法具有擴展性強、代碼邏輯清晰、易于維護等特點,大大提高了系統(tǒng)消息并發(fā)處理效率。

        猜你喜歡
        標識符隊列目的地
        淺析5G V2X 通信應用現(xiàn)狀及其側鏈路標識符更新技術
        基于底層虛擬機的標識符混淆方法
        計算機應用(2022年8期)2022-08-24 06:30:36
        向目的地進發(fā)
        小主人報(2022年7期)2022-08-16 06:59:30
        迷宮彎彎繞
        隊列里的小秘密
        基于多隊列切換的SDN擁塞控制*
        軟件(2020年3期)2020-04-20 00:58:44
        基于區(qū)塊鏈的持久標識符系統(tǒng)①
        在隊列里
        動物可笑堂
        豐田加速駛入自動駕駛隊列
        久草青青91在线播放| 久久国产亚洲高清观看| 国产亚洲av综合人人澡精品| 91亚洲无码在线观看| 毛片av在线尤物一区二区| 免费一区二区在线观看视频在线 | 天堂网在线最新版www| 午夜家庭影院| 国产精品亚洲综合色区丝瓜| 99精品久久精品一区| 天天碰免费上传视频| 漂亮人妻被黑人久久精品| 亚洲成熟丰满熟妇高潮XXXXX| 天堂免费av在线播放| 国产无夜激无码av毛片| 三年片在线观看免费大全电影| 青草青草久热精品视频国产4| 日本一区二区三区四区在线视频 | 国产欧美精品一区二区三区,| 国产精品成人黄色大片| 精品久久亚洲中文字幕| 精品深夜av无码一区二区| 国产欧美久久久另类精品| 女同视频网站一区二区| 国产精品沙发午睡系列| 人妻av中文字幕无码专区| 久久久一本精品99久久| 日韩中文字幕在线丰满| 成人欧美一区二区三区在线观看 | 3d动漫精品啪啪一区二区免费| 人人狠狠综合久久亚洲婷婷| 国产美女自拍国语对白| 国产麻豆精品传媒av在线| 久久久久波多野结衣高潮| 久久99精品久久久久久齐齐百度| 亚洲香蕉久久一区二区| 中文在线中文a| 国产第19页精品| 国产人妖赵恩静在线视频| 国产不卡在线视频观看| 精品av天堂毛片久久久|