毛南趙 賈嘉輝 任中興
1.中煤航測遙感集團(tuán)有限公司 陜西西安 710199;2.西安西北石油管道有限公司 陜西西安 710021
截至2 0 19年年底,天然氣國家基干管網(wǎng)總里程近8.1×104km,年輸氣能力超過3500×108m3?!笆奈濉币?guī)劃對管道安全管理工作提出了更高的要求,高質(zhì)量管道巡檢對保障管道安全意義重大,高效可靠的巡檢系統(tǒng)是管道巡檢安全信息化的第一驅(qū)動力。當(dāng)前企業(yè)的巡檢系統(tǒng)存在高并發(fā)導(dǎo)致數(shù)據(jù)上傳慢,數(shù)據(jù)丟失等問題。消息隊(duì)列(Message Queue,簡稱MQ)作為一種應(yīng)用程序之間的通信方法,不僅能有效地實(shí)現(xiàn)系統(tǒng)間的解耦,同時,它還將業(yè)務(wù)異步化,從而提高系統(tǒng)性能、有效緩解系統(tǒng)壓力。本系統(tǒng)利用Rabbit MQ消息中間件技術(shù),提高了數(shù)據(jù)在移動端和服務(wù)器之間的傳輸效率,為高并發(fā)時數(shù)據(jù)傳輸提供了一套良好的策略,同時,為企業(yè)高效率地應(yīng)用巡檢系統(tǒng)提供了參考。
該巡檢系統(tǒng),遵守天然氣管道安全管理體系規(guī)范,結(jié)合用戶PC終端和巡線APP終端,基于RabbitMQ消息中間件技術(shù),實(shí)現(xiàn)了巡檢管理、事件管理、檔案管理、通知管理及系統(tǒng)管理等功能,提升了天然氣管道安全監(jiān)管能力。具體內(nèi)容如下:
①實(shí)現(xiàn)了巡檢工作計(jì)劃及巡檢任務(wù)的制定及下發(fā),為巡線管理提供便捷化管理;②結(jié)合PC端和APP端,實(shí)現(xiàn)了管線隱患事件上報(bào)全流程處置功能,提高了系統(tǒng)的準(zhǔn)確性、及時性;③實(shí)現(xiàn)了巡檢軌跡高并發(fā)下的實(shí)時傳輸通信,為巡線管理提供可視化監(jiān)管;④實(shí)現(xiàn)了巡檢基礎(chǔ)檔案信息的規(guī)范化管理;⑤實(shí)現(xiàn)了通知下發(fā)、未完成任務(wù)及待辦事項(xiàng)提醒,以及報(bào)警功能,為巡線工作人員績效考評提供了公平性和客觀性。⑥實(shí)現(xiàn)了RabbitMQ消息中間件在系統(tǒng)框架中的應(yīng)用,為高并發(fā)時數(shù)據(jù)傳輸提供了一套良好的策略。
基于RabbitMQ消息中間件的巡檢系統(tǒng)是以管道安全管理體系規(guī)范為基礎(chǔ),以保障天然氣管道安全運(yùn)行為目的,集成了巡檢數(shù)據(jù)采集設(shè)備,結(jié)合了Rabbit MQ、GIS等技術(shù)建立的天然氣管道巡檢系統(tǒng),保障了天然氣管道安全運(yùn)行。
為確保實(shí)施與推廣,系統(tǒng)整體上采用B/S架構(gòu)。系統(tǒng)構(gòu)建了四層體系架構(gòu):界面展示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層和數(shù)據(jù)存儲層。
該巡檢系統(tǒng)主要包括以下幾個功能模塊:系統(tǒng)管理模塊、GIS基礎(chǔ)模塊、計(jì)劃任務(wù)模塊、事件管理模塊、實(shí)時監(jiān)控模塊、檔案管理模塊、績效管理模塊、通知提醒等功能模塊。
本系統(tǒng)基于關(guān)系型數(shù)據(jù)庫和空間要素存儲引擎,采用APDM管線數(shù)據(jù)模型,用于存儲、收集和管線有關(guān)的信息。
消息隊(duì)列MQ(Message Quene,MQ),是消息中間件通過利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進(jìn)行分布式系統(tǒng)的集成。即一種應(yīng)用程序?qū)?yīng)用程序的通信方法。應(yīng)用程序通過讀寫出入隊(duì)列的消息(針對應(yīng)用程序的數(shù)據(jù))來通信,而無需專用連接來鏈接它們。
消息隊(duì)列中間件是分布式系統(tǒng)中重要的組件,主要解決應(yīng)用解耦,異步消息,流量削鋒等問題,實(shí)現(xiàn)高性能,高可用,可伸縮和最終一致性架構(gòu)。目前使用較多的消息隊(duì)列有Active MQ,Rabbit MQ,Rocket MQ,Kafka等。其主要性能對比分析如表1所示。
表1 消息隊(duì)列中間件性能對比表
綜上所知,消息隊(duì)列ActiveMQ、RabbitMQ、RocketMQ和kafka都有其適用場景,相較于其他消息中間件而言,RabbitMQ消息中間件具有高可用高并發(fā)的特點(diǎn),適用于對數(shù)據(jù)一致性、穩(wěn)定性和可靠安全性要求都很高的場景。結(jié)合天然氣管道巡檢系統(tǒng)的建設(shè)要求,本文將RabbitMQ應(yīng)用于巡檢系統(tǒng),為高并發(fā)時巡檢軌跡數(shù)據(jù)傳輸提供了一套良好的策略。
RabbitMQ是使用Erlang語言開發(fā)的開源消息隊(duì)列系統(tǒng),基于AMQP協(xié)議來實(shí)現(xiàn),采用信道通信,擁有消息確認(rèn)機(jī)制和持久化機(jī)制,具有健壯性好、易于使用、高性能、高并發(fā)、集群易擴(kuò)展等優(yōu)點(diǎn)。AMQP的主要特征是面向消息、隊(duì)列、路由(包括點(diǎn)對點(diǎn)和發(fā)布/訂閱)、可靠性、安全。RabbitMQ的消息模型圖(發(fā)送訂閱模式)如圖1所示。其中,P是消息發(fā)送者,可將消息發(fā)送到X;X是交換機(jī),可根據(jù)路由將消息發(fā)送給指定隊(duì)列;Q是隊(duì)列,存放消息;C是消息接受者,從隊(duì)列中獲取消息。該模式中,消費(fèi)者的消息隊(duì)列綁定到該交換機(jī)并匹配到Routing Key實(shí)現(xiàn)消息訂閱,訂閱后便可接收消息。只有消費(fèi)者將隊(duì)列綁定到該交換機(jī)且指定的Routing Key符合正則校驗(yàn),才能收到消息,從而保證消息的可靠性。
圖1 RabbitMQ消息模型圖
在巡檢系統(tǒng)中應(yīng)用RabbitMQ進(jìn)行消息隊(duì)列管理,采用發(fā)布訂閱模式,保證不同任務(wù)間獨(dú)立運(yùn)行。在巡檢過程中,巡檢APP會根據(jù)業(yè)務(wù)需要定時發(fā)送位置數(shù)據(jù),RabbitMQ則定時從巡檢移動端APP獲取數(shù)據(jù)后,消息數(shù)據(jù)會保存入MQ消息隊(duì)列,進(jìn)行緩存,然后服務(wù)端定期掃描MQ隊(duì)列,進(jìn)行異步處理。以備巡檢服務(wù)端進(jìn)行消息句柄的內(nèi)容的解析,高效的計(jì)算,持久化操作。其次,Rabbit MQ消息確認(rèn)機(jī)制可以解決數(shù)據(jù)丟失問題,即成功消費(fèi)MQ中的消息才會被消息確認(rèn)——Ack。Rabbit MQ的引用改進(jìn)了移動端消息傳遞方式,為巡檢提供高強(qiáng)度的后端算力提供了緩存消息基礎(chǔ),從而保證巡檢數(shù)據(jù)安全可靠的傳遞,從而解決高并發(fā)、系統(tǒng)數(shù)據(jù)丟失等問題。
系統(tǒng)按照軟件開發(fā)標(biāo)準(zhǔn)進(jìn)行開發(fā),充分考慮系統(tǒng)的后續(xù)推廣,確保系統(tǒng)的簡單易用和高可擴(kuò)展性。
主要對系統(tǒng)中的閾值、用戶、單位、角色、功能、登錄日志、操作日志以及在線時長等信息進(jìn)行統(tǒng)一管理。不僅可以對用戶權(quán)限進(jìn)行限制管理,同時可以對用戶在系統(tǒng)中的操作進(jìn)行痕跡管理。
實(shí)現(xiàn)了地圖放大、縮小和查看等基本功能;實(shí)現(xiàn)了底圖切換,專題地圖,圖層管理,地圖量測,打印輸出,視圖書簽等擴(kuò)展功能。
可分為計(jì)劃管理和任務(wù)管理。其中,計(jì)劃管理可根據(jù)不同的員工角色制定不同人員的巡檢計(jì)劃,選擇計(jì)劃生成任務(wù)的規(guī)則,制定完成后會在計(jì)劃周期內(nèi)自動生成一個任務(wù)推送給巡線人員。任務(wù)管理實(shí)現(xiàn)了臨時任務(wù)的制訂及下發(fā),以及具體巡線任務(wù)的查詢等管理。
實(shí)現(xiàn)了巡檢過程中隱患事件的上報(bào)、查看、流程處置,及結(jié)果統(tǒng)計(jì)分析功能,達(dá)到事件信息的上報(bào)、審核、監(jiān)護(hù)、跟蹤、辦結(jié)的閉環(huán)管理。并支持在地圖上定位事件的位置,便于事件處理,提高事件管理響應(yīng)效率。
實(shí)現(xiàn)了巡檢人員的實(shí)時位置、歷史軌跡及人員在線信息的實(shí)時查看。管理員能夠在地圖上實(shí)時監(jiān)控巡檢人員信息,從而清晰地掌握巡檢人員的出勤情況。該模塊重點(diǎn)應(yīng)用了RabbitMQ消息中間件,極大提高了消息訂閱與消費(fèi)的高效性、實(shí)時性。
實(shí)現(xiàn)了對巡檢員、巡檢儀、SIM以及巡檢關(guān)鍵點(diǎn)信息的歸檔管理,可支持檔案信息批量導(dǎo)出功能。
通過查看單日或者多日的巡檢個人報(bào)表及單位報(bào)表。主要指標(biāo)包括巡檢員名稱、人員類型、所屬單位、員工編號、巡檢狀況、任務(wù)質(zhì)量信息等。合理客觀地對巡檢人員進(jìn)行績效考核。
實(shí)現(xiàn)了各類通知公告信息的下發(fā),以及巡檢過程中三超(超時、超距、超速)信息的提醒;提高巡線人員的巡護(hù)質(zhì)量。
本文將Rabbit MQ消息中間件應(yīng)用于天然氣管道巡檢系統(tǒng)。探討了Rabbit MQ消息中間件的工作原理、策略及在巡檢系統(tǒng)中的應(yīng)用和價值。實(shí)現(xiàn)了RabbitMQ消息中間件在系統(tǒng)框架中的應(yīng)用,高效解決了巡檢高并發(fā)時消息堆積、巡檢軌跡數(shù)據(jù)丟失等問題,提高了巡檢系統(tǒng)的穩(wěn)定性和高效性,不僅為高并發(fā)時數(shù)據(jù)傳輸提供了一套良好的策略,還為企業(yè)高效率地應(yīng)用巡檢系統(tǒng)提供了參考,從而進(jìn)一步提高了管道安全監(jiān)管能力。