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 的完美集成,其應用必將不斷擴大。

主站蜘蛛池模板: 高清不卡一区二区三区香蕉| 精品欧美视频| 国产99视频在线| 中文字幕久久亚洲一区| 成人福利免费在线观看| 一级毛片在线直接观看| 国产综合网站| 亚洲热线99精品视频| 亚洲伦理一区二区| 狠狠五月天中文字幕| 国产麻豆精品在线观看| 午夜福利免费视频| 色综合中文字幕| 99性视频| 麻豆精品在线| 在线观看免费国产| 91人人妻人人做人人爽男同| 国产精品久久国产精麻豆99网站| 亚洲无码熟妇人妻AV在线| 国产精品视频免费网站| 精品乱码久久久久久久| 玖玖精品在线| 国产日韩欧美成人| 国内精品久久久久久久久久影视| 国产日韩欧美成人| 免费人成视频在线观看网站| 日韩中文精品亚洲第三区| 国产无码在线调教| 999国产精品永久免费视频精品久久 | 91成人在线观看| 欧美特黄一免在线观看| 亚洲国产日韩欧美在线| 国产一区成人| 欧美专区日韩专区| 精品亚洲麻豆1区2区3区| 日韩一区二区在线电影| 2021精品国产自在现线看| 色哟哟国产精品| 亚洲AV无码乱码在线观看代蜜桃| 国产主播福利在线观看| 欧美亚洲日韩不卡在线在线观看| 久久精品视频亚洲| aaa国产一级毛片| 国产极品美女在线播放| 色欲综合久久中文字幕网| 亚洲精品高清视频| 国产熟女一级毛片| 国产精品页| 久久午夜影院| 欧美成人aⅴ| 最新国产午夜精品视频成人| 免费国产高清视频| 国产精品综合色区在线观看| 亚洲高清免费在线观看| 毛片网站在线看| 毛片基地视频| 在线观看国产一区二区三区99| 亚洲日本中文综合在线| 中文字幕欧美日韩| 亚洲中文字幕无码爆乳| 91麻豆精品视频| 97视频精品全国免费观看| 婷婷伊人久久| 日本精品视频一区二区| 亚洲成a∧人片在线观看无码| 99热国产在线精品99| 国产91无码福利在线| 精品一区二区三区无码视频无码| 四虎亚洲国产成人久久精品| 欧美乱妇高清无乱码免费| 国产成人福利在线| 四虎永久免费在线| 日本a级免费| 国产精品专区第1页| 国产精品香蕉在线观看不卡| 2022国产无码在线| 亚洲精品麻豆| 国产一区二区三区夜色| A级毛片高清免费视频就| 中文字幕在线永久在线视频2020| 一本大道视频精品人妻| 亚洲人妖在线|