• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Kafka 的公交GPS 數(shù)據(jù)實時通訊系統(tǒng)的設(shè)計與應(yīng)用

      2022-08-22 16:23:12綦忠平
      城市公共交通 2022年6期
      關(guān)鍵詞:數(shù)據(jù)通訊消息公交

      何 偉 王 浩 綦忠平

      (濟(jì)南公共交通集團(tuán)有限公司,濟(jì)南 250013)

      關(guān)鍵字:GPS;Kafka;實時處理;大數(shù)據(jù)技術(shù)

      隨著城市擁堵加劇,為減少無效等待時間,降低等車焦慮,市民對公交車輛動態(tài)運行信息的實時性和準(zhǔn)確性要求日益提高,保障車輛運行數(shù)據(jù)的穩(wěn)定性和完整性已成為公交企業(yè)對外服務(wù)和內(nèi)部管理的關(guān)鍵。保證核心業(yè)務(wù)系統(tǒng)的數(shù)據(jù)處理能力、有效應(yīng)對每秒數(shù)萬筆的GPS 數(shù)據(jù)傳輸和處理成為重中之重,若不能進(jìn)行流量緩沖將直接引發(fā)系統(tǒng)崩潰和服務(wù)停滯,亟需利用大數(shù)據(jù)技術(shù)幫助業(yè)務(wù)系統(tǒng)處理瞬間流量洪峰的沖擊,保持各個應(yīng)用之間的消息通暢。

      1 現(xiàn)狀及分析

      公交運力隨著城市拓展不斷提升,傳統(tǒng)的公交數(shù)據(jù)通訊網(wǎng)關(guān)已無法滿足新時代公交調(diào)度和乘客信息服務(wù)的需求,需要建設(shè)滿足高可靠、高并發(fā)的實時數(shù)據(jù)通訊系統(tǒng)。

      1.1 現(xiàn)狀問題

      傳統(tǒng)的數(shù)據(jù)通訊系統(tǒng)存在以下幾個方面的問題:

      (1)在處理海量并發(fā)數(shù)據(jù)方面,存在單點故障和負(fù)載不均衡等問題。

      (2)系統(tǒng)模塊耦合度較高、功能復(fù)雜,存在故障定位、追溯和運維困難等問題。

      (3)數(shù)據(jù)流經(jīng)環(huán)節(jié)多,存在網(wǎng)關(guān)、數(shù)據(jù)庫、機(jī)房網(wǎng)絡(luò)等軟硬件綜合故障概率大等問題。

      1.2 業(yè)務(wù)需求

      公交GPS 數(shù)據(jù)實時通訊系統(tǒng)需能正確、高效地解析、轉(zhuǎn)發(fā)和存儲數(shù)據(jù),滿足高吞吐、高并發(fā)、高可用等工作要求,能準(zhǔn)確監(jiān)控公交車輛運行位置、速度等狀態(tài)信息,在保障公交智能調(diào)度系統(tǒng)運行正常和滿足人們的出行信息服務(wù)需求方面發(fā)揮出關(guān)鍵作用。

      (1)負(fù)載均衡:基于TCP 和HTTP 提供代理服務(wù),需支持負(fù)載均衡。

      (2)高并發(fā)性:支持高并發(fā)解析和處理數(shù)據(jù),需保證實時響應(yīng)能力。

      (3)實時性:面對大量數(shù)據(jù)接入,需能正確、實時、完整地解析和處理數(shù)據(jù)。

      (4)高可用性:保證主備服務(wù)器可用,應(yīng)避免因單臺故障影響整體服務(wù)不可用。

      (5)高穩(wěn)定性:通信服務(wù)器應(yīng)對大量連接保持穩(wěn)定連接狀態(tài),避免宕機(jī)。

      (6)可拓展性:平臺模塊低耦合,模塊之間的需求發(fā)生改變不影響整個系統(tǒng)的可用性。

      2 系統(tǒng)方案設(shè)計

      針對上述業(yè)務(wù)需求,本文選擇基于分布式發(fā)布-訂閱消息系統(tǒng)Kafka 設(shè)計搭建公交GPS 數(shù)據(jù)通訊系統(tǒng)。Kafka 是一個高吞吐量的分布式消息訂閱-發(fā)布系統(tǒng),具備高性能、持久化、多副本備份、橫向擴(kuò)展能力。通過生產(chǎn)者向隊列里寫消息,消費者從隊列里取消息進(jìn)行業(yè)務(wù)邏輯處理,相對于傳統(tǒng)的消息隊列,Kafka 可實現(xiàn)業(yè)務(wù)邏輯的解耦、削峰和異步處理。公交智能調(diào)度系統(tǒng)采用具備高性能異步通信能力的Netty 框架;選用HAProxy 構(gòu)建代理服務(wù)器并結(jié)合Keepalive 健康檢查,解決通信服務(wù)器的單點故障、負(fù)載不均問題,實現(xiàn)故障轉(zhuǎn)移的高可用方案;選用Kafka 分布式消息隊列降低模塊耦合度,解決通信服務(wù)和數(shù)據(jù)庫耦合度高、模塊功能復(fù)雜且難以維護(hù)的問題;其他模塊利用Kafka 定制分發(fā)策略,將Kafka 作為數(shù)據(jù)源,達(dá)到模塊功能單一、系統(tǒng)性能最優(yōu)的目的。系統(tǒng)設(shè)計模塊如圖1所示。

      圖1 系統(tǒng)設(shè)計模塊

      2.1 Kafka 消息隊列

      典型的用于數(shù)據(jù)通訊的分布式消息中間件主要包括ActiveMQ、RabbitMQ、ZeroMQ、Kafka 等。ActiveMQ 不支持集群控制臺管理,訪問吞吐量較低,RabbitMQ 伸縮性不能滿足遞增的系統(tǒng)規(guī)模,ZeroMQ 由于采用內(nèi)存進(jìn)行存儲和轉(zhuǎn)發(fā),沒有持久化機(jī)制。

      Kafka 支持發(fā)布訂閱模式,滿足低延遲、高吞吐、高可用需求,吞吐量可隨集群擴(kuò)展而線性增加,在海量數(shù)據(jù)處理領(lǐng)域被廣泛應(yīng)用,同時支持離線數(shù)據(jù)處理和實時數(shù)據(jù)處理。通過對比分析,選擇Kafka應(yīng)用于分布式公交GPS 大數(shù)據(jù)處理系統(tǒng)。消息傳遞模式如圖2 所示。

      圖2 消息傳遞模式

      2.2 Netty 通信框架

      Netty 通訊框架具有高性能、異步通信、事件驅(qū)動的特點,適合用于構(gòu)建高性能、分布式通信系統(tǒng),可用于快速開發(fā)、維護(hù)基于網(wǎng)絡(luò)協(xié)議的服務(wù)器和客戶端。

      2.3 HAProxy

      HAProxy 提供基于TCP 的負(fù)載均衡,具有高性能、高可靠、高安全特性,支持萬級并發(fā),包括GitHub、Twitter、亞馬遜等知名網(wǎng)站都使用了HAProxy。

      2.4 數(shù)據(jù)庫

      Redis 是高性能NoSQL 數(shù)據(jù)庫,數(shù)據(jù)采取內(nèi)存存儲方式,利用復(fù)制特性擴(kuò)展讀性能,利用客戶端分片擴(kuò)展寫性能,采用單線程工作模型,避免頻繁上下文切換,采用非阻塞I/O 多路復(fù)用機(jī)制。

      3 通訊系統(tǒng)架構(gòu)

      針對公交車輛運行實時數(shù)據(jù),本系統(tǒng)利用Netty 集群解決高并發(fā)通信問題,選用Kafka 集群作為實時消息處理模塊的中間件,利用Kafka 的異步解耦功能,避免系統(tǒng)業(yè)務(wù)之間相互耦合影響,實現(xiàn)上、下游業(yè)務(wù)系統(tǒng)松耦合,降低系統(tǒng)復(fù)雜度,縮短用戶請求的響應(yīng)時間,保證智能調(diào)度子系統(tǒng)或子模塊的故障不影響整個鏈路。

      利用Kafka 技術(shù)搭建大規(guī)模的消息系統(tǒng),Kafka具有消息持久化、高吞吐、分布式、實時、低耦合、多客戶端支持、數(shù)據(jù)可靠等諸多特點,系統(tǒng)流程如圖3 所示。

      圖3 系統(tǒng)設(shè)計流程

      3.1 系統(tǒng)整體架構(gòu)

      公交車載終端與通訊服務(wù)器建立TCP 連接,車輛運行數(shù)據(jù)經(jīng)代理服務(wù)器、Netty 集群通信服務(wù)器轉(zhuǎn)發(fā)推送到Kafka 集群消息隊列服務(wù)器。為保證對外服務(wù)的時效性,減少數(shù)據(jù)入庫延遲影響,公交手機(jī)來車預(yù)報APP、電子站牌等業(yè)務(wù)首選從Kafka獲取車輛GPS 數(shù)據(jù),從數(shù)據(jù)庫獲取車輛注冊數(shù)據(jù)。智能調(diào)度車輛運行監(jiān)控、數(shù)據(jù)統(tǒng)計分析、安全管理等業(yè)務(wù)系統(tǒng)從數(shù)據(jù)庫獲取車輛運行動靜態(tài)數(shù)據(jù)。系統(tǒng)整體架構(gòu)如圖4 所示。

      圖4 系統(tǒng)整體架構(gòu)

      (1)數(shù)據(jù)源層(公交車載GPS),用于產(chǎn)生原始GPS 數(shù)據(jù),通過4G 無線網(wǎng)絡(luò)實時上傳,每5 秒上傳1 次。

      (2)數(shù)據(jù)通訊層,利用Netty 集群與車載設(shè)備實時連接,實現(xiàn)公交車載設(shè)備上線注冊、數(shù)據(jù)通訊、負(fù)載均衡等功能。每臺虛擬服務(wù)器可支持500 輛車實時通訊。

      (3)數(shù)據(jù)分發(fā)層,利用Kafka 集群實時處理5000 多個終端的高并發(fā)GPS 數(shù)據(jù),并以毫秒級延遲實時發(fā)布,滿足內(nèi)外不同應(yīng)用場景的消息訂閱需求。

      (4)數(shù)據(jù)存儲層,利用Redis 數(shù)據(jù)庫緩存實時數(shù)據(jù),提高數(shù)據(jù)訪問效率;利用Oracle 數(shù)據(jù)庫存儲數(shù)據(jù),根據(jù)業(yè)務(wù)需求進(jìn)行計算與交互。

      (5)數(shù)據(jù)輸出層,分為對外便民服務(wù)和內(nèi)部業(yè)務(wù)管理兩部分,對外服務(wù)重點保障高實時性,內(nèi)部管理兼顧實時性與數(shù)據(jù)統(tǒng)計分析。

      本文設(shè)計的通訊系統(tǒng)架構(gòu),部署在虛擬機(jī)集群之上提供服務(wù),可有效避免由于智能調(diào)度系統(tǒng)故障或數(shù)據(jù)庫故障導(dǎo)致的對外服務(wù)停滯問題,提高了系統(tǒng)整體的可用性和可靠性。

      3.2 內(nèi)部功能模塊

      GPS 數(shù)據(jù)通訊系統(tǒng)是公交智能調(diào)度系統(tǒng)的關(guān)鍵子系統(tǒng)之一,主要包括車輛注冊、心跳連接、數(shù)據(jù)解析、數(shù)據(jù)存儲、數(shù)據(jù)接口等功能(圖5)。該系統(tǒng)從總體設(shè)計方面來講,每個模塊功能較為單一,降低了模塊之間的耦合度,提高了模塊靈活性和復(fù)用率。

      圖5 通訊系統(tǒng)內(nèi)部模塊

      (1)車輛注冊功能:通信服務(wù)器與車載終端建立連接,接收車輛登錄和注冊信息,將車輛注冊信息存入數(shù)據(jù)庫。

      (2)健康檢查功能:采用心跳連接,系統(tǒng)自身維護(hù)車載終端和通信服務(wù)器長鏈接狀態(tài)。

      (3)數(shù)據(jù)解析功能:依據(jù)衛(wèi)星定位系統(tǒng)終端通訊協(xié)議,正確解析數(shù)據(jù),并校驗數(shù)據(jù)的正確性。

      (4)數(shù)據(jù)存儲功能:結(jié)合業(yè)務(wù)需要,分類分庫存儲。車輛運行數(shù)據(jù)存入Redis 數(shù)據(jù)庫,提高訪問效率,同時車輛基礎(chǔ)數(shù)據(jù)和運行數(shù)據(jù)存入Oracle 數(shù)據(jù)庫,便于數(shù)據(jù)追溯。

      (5)數(shù)據(jù)接口:系統(tǒng)對外公布服務(wù)接口,供企業(yè)內(nèi)部其他系統(tǒng)或外部第三方獲取動態(tài)數(shù)據(jù)。

      4 系統(tǒng)評價

      本文提出的基于Kafka 的公交GPS數(shù)據(jù)實時通訊系統(tǒng)充分利用了先進(jìn)的實時大數(shù)據(jù)流處理技術(shù),并針對公交GPS數(shù)據(jù)流的特點對技術(shù)選型和系統(tǒng)架構(gòu)進(jìn)行了研究和設(shè)計。經(jīng)過研究分析及實際應(yīng)用(圖6),本文設(shè)計的數(shù)據(jù)實時通訊系統(tǒng)具有如下優(yōu)勢。

      圖6 系統(tǒng)環(huán)境配置及并發(fā)訪問

      (1)數(shù)據(jù)處理高效。系統(tǒng)采用當(dāng)前先進(jìn)的高可靠、高吞吐量的Kafka 消息系統(tǒng),基于內(nèi)存數(shù)據(jù)庫進(jìn)行數(shù)據(jù)處理,實時處理能力強(qiáng),較傳統(tǒng)架構(gòu)處理效率顯著提升。

      (2)功能擴(kuò)展性強(qiáng)。系統(tǒng)采用的Kafka 消息隊列、Netty 通信集群、Oracle數(shù)據(jù)庫和Redis 數(shù)據(jù)庫均采用分布式集群架構(gòu),具備較強(qiáng)的擴(kuò)展能力。隨著公交車輛增多,系統(tǒng)處理能力可平滑擴(kuò)展,有效降低了系統(tǒng)擴(kuò)展成本。

      (3)系統(tǒng)可用性強(qiáng)。通過服務(wù)器集群提供負(fù)載均衡,通過Kafka 消息隊列集群和Oracle 數(shù)據(jù)庫集群多通道提供實時數(shù)據(jù),縮小單點故障的影響范圍,避免造成出行信息服務(wù)停滯。

      (4)可恢復(fù)性高。系統(tǒng)的一部分組件失效時,不會影響到整個系統(tǒng)。消息隊列降低了進(jìn)程間的耦合度,即使一個處理消息的進(jìn)程掛掉,加入隊列中的消息仍可在系統(tǒng)恢復(fù)后被處理。

      5 結(jié)語

      本文設(shè)計的公交GPS 數(shù)據(jù)實時通訊系統(tǒng)實現(xiàn)了公交車輛GPS 運行數(shù)據(jù)的解析、存儲和分發(fā),為市民提供實時車輛運行信息,引導(dǎo)市民優(yōu)先選擇綠色出行,為企業(yè)調(diào)度運營提供數(shù)據(jù)支持,滿足市民美好出行體驗的需要,不斷提高公交乘客滿意度,獲得良好的經(jīng)濟(jì)和社會效益。

      猜你喜歡
      數(shù)據(jù)通訊消息公交
      一元公交開進(jìn)太行深處
      機(jī)器視覺系統(tǒng)與PLC的數(shù)據(jù)通訊
      一張圖看5G消息
      等公交
      等公交
      基于C#的船舶電力推進(jìn)監(jiān)控系統(tǒng)的數(shù)據(jù)通訊設(shè)計
      消息
      消息
      消息
      智能電能表數(shù)據(jù)通訊安全性分析
      九台市| 株洲市| 霸州市| 嘉义县| 加查县| 二手房| 乌兰浩特市| 高唐县| 沭阳县| 固阳县| 资阳市| 长丰县| 清河县| 临海市| 蕉岭县| 长顺县| 卢龙县| 新昌县| 突泉县| 九龙坡区| 定日县| 江孜县| 滦平县| 蕲春县| 宿州市| 松溪县| 镶黄旗| 吴忠市| 汝阳县| 萨迦县| 抚宁县| 楚雄市| 瓮安县| 衢州市| 扎鲁特旗| 陇西县| 杭锦后旗| 科尔| 嵩明县| 谢通门县| 彭州市|