999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Spring Integration的定位終端與服務器網絡通信框架

2021-04-01 09:27:12耿國光張兆國蔡明月
鐵道運營技術 2021年2期

耿國光,張兆國,蔡明月

(1、2,廣西旅發科技有限公司,高級工程師,廣西 南寧,530028;3、中國鐵路南寧局集團有限公司 信息技術所,工程師,廣西 南寧,530029)

0 引言

在開發車輛監控系統時,首先要完成的是建立服務器與定位終端的網絡通信,進而實現定位數據的解析、入庫、指令下發等工作。目前車輛監管中使用最多的網絡通信框架有Mina 和Netty。Mina 是Apache 組織的一個項目,它為開發高性能和高可用性的網絡應用程序提供非常便利的框架。雖然Mina 處理數據能力很強,但無法做到高并發,因為Mina 將所有的處理事件以輪詢方式全部放入同一個任務隊列中進行處理,當網絡一旦發生延遲就會造成隊列的阻塞[1]。Netty 是由JBoss 提供的一個Java開源框架,它對高并發的處理做了很大改進,它將隊列分成了任務隊列和延遲隊列[2],任務隊列中存放所有要執行的任務,延遲隊列負責定時調度任務。

Spring Integration 是Spring 開發的一個開源的輕量級ESB(Enterprise Service Bus,企業服務總線)框架,旨在提供企業系統集成解決方案[3]。它構建在Spring 控制反轉設計模式之上[4],擴展了傳統Spring 模型通過事件驅動和消息傳遞為中心的架構,以解決集成開發問題。另外,Spring Integration基于XML Schema 的配置,能夠與Spring 框架和J2EE強大集成。

1 Spring Integration主要組件

Spring Integration 包含三個基本組件,分別是存儲信息的消息組件Message(消息)、消息處理組件Message Endpoints(消息終端)、用于連接消息終端的消息通道組件Message Channel(消息通道)。其中,消息終端組件和消息通道組件因其具體功能不同,又包含許多子組件。下面對一些核心組件進行介紹。

1)Message(消息)。消息是信息存儲組件,可以在不同的消息終端之間進行傳遞,是最基本的信息單元。消息包括Header(消息頭)和Payload(消息負載)兩部分。消息頭存儲信息的屬性值,如消息id、消息有效時間和消息返回地址等。消息負載存儲信息本體,可以是任何類型的數據,如XML、字符串或者java對象等。

2)Message Channel(消息通道)。消息通道是消息傳遞組件,它的作用是連接不同的消息終端,從而能夠實現消息在不同終端之間的傳遞。消息通道結構如圖1所示。

圖1 消息通道

消息通道的作用是消息生產者將消息發送到消息通道,消息消費者從消息通道中獲取消息,從而實現了消息生產者和消費者之間的解耦。另外消息通道還提供了消息攔截功能,可以用來監控消息。

3)Message Endpoint(消息終端)。消息終端是用來處理消息的組件,下面介紹幾種常用的消息終端。

(1)Transformer(消息轉換器)。消息轉換器是一種消息格式轉換終端,它能夠對消息的內容或結構進行轉換。比如它可以將消息負載從Integer 類型轉換成String 類型,也可以添加、修改或刪除消息頭中的值。

(2)Filter(消息過濾器)。消息過濾器能夠對消息類型進行過濾,把滿足條件的消息發送到消息通道。

(3)Router(消息路由器)。消息路由器是一種消息路由處理終端,它根據消息的內容決定消息的下一個處理終端,從而將消息發送到相應的消息通道,消息路由器不會改變原有消息的內容。

(4)Service Activator(服務激活器)。服務激活器是一個邏輯處理終端,它接收到輸入通道傳入的消息后可以調用應用程序接口來處理消息,并將處理結果新的消息發送至輸出通道。

(5)Channel Adapter(通道適配器)。通道適配器是消息傳遞系統與消息生產者和消息消費者聯系的門戶,可以分為Inbound 類型和Outbound 類型,其中Inbound 類型通道適配器獲取消息源的消息,把消息傳入到消息通道。Outbound 類型通道適配器把消息通道中的消息傳給其它系統。通道適配器如圖2所示。

圖2 通道適配器

2 面向消息處理流程的TCP通信

Spring Integration 提供對TCP 和UDP 網絡通信的支持,使得Spring Integration 可以基于TCP 協議或UDP 協議對車載定位終端進行集成。Spring Integration 可以把與每一個終端的通信都單獨封裝成一個線程處理,通過這種多線程處理機制很好地保障了對高并發的處理。

2.1 配置TCP 連接Spring Integration 通過連接工廠與定位終端建立TCP 連接,其中連接工廠分為server 類型和client 類型。Server 類型連接工廠用于服務器端,它能夠監聽tcp 連接請求,從而與客戶端建立連接。Client 類型連接工廠用于客戶端,能夠向服務器端發送tcp 連接請求。車載定位終端是Tcp 通信請求方,所以這里要使用server 類型的連接工廠。連接工廠的配置如圖3所示。

圖3 連接工廠配置

zdkGpsDeserializer 是自定義反序列化對象,用于實現終端上傳數據的解碼邏輯。 類ZdkGpsDeserializer 需要實現接口Deserializer<T>,并重寫deserialize(InputStream var1)方法,其中T 是反序列化方法返回的結果類型。

zdkGpsSerializer 是自定義序列化對象,用于序列化發送到終端的數據。類ZdkGpsSerializer 需要實 現 接 口Serializer<T>,并 重 寫serialize(T var1,OutputStream var2)方法,其中類T 是定位終端接收的數據類型。

zdkGpsConnectionMapper 是JMS 消息與Spring Integration 消息的映射器對象,該對象用于實現終端消息類型與Spring Integration 消息類型的轉換。類ZdkGpsConnectionMapper 需 要 繼 承 類TcpMessageMapper,并 重 寫Message<? >toMessage(TcpConnection connection, Map<String, Object>headers)方法。在toMessage 方法中既要實現終端消息的反序列化,還要記錄下終端與服務器的Tcp 連接對象,以便使用該連接對象向定位終端發送控制指令。

組件<int-ip: tcp-connection-factory/>用來配置TCP連接工廠,配置的各屬性含義如表1所示。

表1 連接工廠配置屬性

2.2 配置消息網關定位終端與服務器建立TCP連接后,服務器需要配置消息網關以定義消息在服務器中的流向。消息網關配置如圖4所示。

圖4 TCP網關配置

標簽<int:channel/>定義了兩個消息通道:標簽<int-ip:tcp-inbound-gateway>用來定義tcp-inbound類型的網關。在該配置中,反序列化輸出的消息流進入通道zdkGpsInputChannel 中。發往定位終端的消息流則通過zdkGpsInputChannel 通道離開服務器。

2.3 配置服務激活器服務器接收到定位終端發送的信息后,一般會向定位終端回復相應的信息以告知定位終端消息已經收到。接收到的消息不同,需要回復的消息也不同,這就要根據接收到的消息動態的構造回復信息。動態構造回復消息過程可以通過服務激活器完成。服務激活器配置如圖5 所示。

圖5 服務激活器配置

標簽<int:service-activator>用來定義服務激活器。在該配置中通道zdkGpsInputChannel 中的消息流會傳入到類ZdkGpsMessageHandle 的方法dealMessage中進行處理。

2.4 配置TcpConnection 事件監聽當服務器與車載定位終端建立的TcpConnection 發生變化時,Spring Integration 會發送TcpConnectionEvent 事件。TcpConnectionEvent是ApplicationEvent的子類,能被ApplicationListener接收。當定位終端由于某些原因(沒有信號、終端斷電等)斷開與服務器連接時,服務器需要關閉連接并釋放該連接占用的資源。

3 結束語

本文基于Spring Integration 對TCP 的支持實現了服務器與定位終端的網絡通信。這種通信機制已經在我司的車輛監控平臺得到應用,通過對我司平臺下2000 輛車的實時監控,這種框架能夠很好的保障服務器與定位終端通信的實時性以及定位終端的高并發性。目前Spring Integration 在TCP 通信方面應用較少,但是隨著基于Spring 的J2EE 框架應用越來越廣泛,Spring Integration 因其與Spring 的完美集成,其應用必將不斷擴大。

主站蜘蛛池模板: 午夜国产在线观看| 欧美色亚洲| 国产区免费精品视频| 欧美成人午夜在线全部免费| 最新国产精品第1页| 欧美一区二区精品久久久| 亚洲无码91视频| 18黑白丝水手服自慰喷水网站| 蜜臀av性久久久久蜜臀aⅴ麻豆| 免费a在线观看播放| 亚洲永久免费网站| 成人亚洲天堂| 亚洲第一天堂无码专区| 国产95在线 | 国产精品99r8在线观看| 午夜少妇精品视频小电影| 91精品专区| 国内精品自在自线视频香蕉| 国产在线观看人成激情视频| 99中文字幕亚洲一区二区| 在线观看国产精品日本不卡网| 在线国产你懂的| 欧美成人日韩| 香蕉久人久人青草青草| 精品免费在线视频| 在线欧美一区| 国产专区综合另类日韩一区| 国产欧美在线观看精品一区污| 亚洲国产精品一区二区第一页免 | 亚洲不卡av中文在线| 国产精品理论片| 五月婷婷丁香色| 色婷婷天天综合在线| 白浆免费视频国产精品视频| 狠狠色综合网| h网址在线观看| 日韩国产综合精选| 午夜国产不卡在线观看视频| 精品少妇人妻一区二区| 日韩a在线观看免费观看| 亚洲精品福利视频| 亚洲精品你懂的| 精品一区二区三区中文字幕| 在线看免费无码av天堂的| 国产精品久久久久久久久久98| 亚洲色图另类| 老司机精品一区在线视频| 国产精品成人一区二区不卡| 亚洲成人动漫在线| 亚洲另类第一页| 亚洲v日韩v欧美在线观看| 亚洲精品男人天堂| 久久一色本道亚洲| 一级毛片中文字幕| 青草免费在线观看| lhav亚洲精品| 欧美精品在线免费| 久久人人97超碰人人澡爱香蕉| 成人一级黄色毛片| 免费欧美一级| 久久美女精品| 亚洲男人天堂2020| 91青青视频| 伊人激情综合| 日本在线国产| 久久黄色一级片| 久久国产亚洲偷自| 中文字幕亚洲专区第19页| 国产成人高清精品免费软件| 日韩黄色大片免费看| 热久久国产| 欧美激情伊人| 国内精品手机在线观看视频| 亚洲精品你懂的| 国产女人在线观看| 在线看片中文字幕| 久草国产在线观看| 99福利视频导航| 亚洲综合婷婷激情| 一区二区日韩国产精久久| a级毛片免费看| 国产网友愉拍精品视频|