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

主站蜘蛛池模板: 毛片在线看网站| 日韩性网站| 亚洲自拍另类| 日韩第九页| 高清欧美性猛交XXXX黑人猛交| 19国产精品麻豆免费观看| 国产精品jizz在线观看软件| 三级毛片在线播放| 欧美人在线一区二区三区| 亚洲国产精品一区二区高清无码久久| 热99re99首页精品亚洲五月天| 天天色天天综合| av在线无码浏览| 波多野结衣第一页| аv天堂最新中文在线| 欧美一级在线| 97se亚洲综合在线韩国专区福利| 玖玖精品在线| 亚洲小视频网站| 在线一级毛片| 国产白浆视频| 台湾AV国片精品女同性| 国产一二视频| 99精品影院| 91精品国产自产在线老师啪l| 天天综合网色| 国产成人精品亚洲77美色| 国产91精品调教在线播放| 亚洲国产精品日韩专区AV| 99精品久久精品| 欧美成人精品一区二区| 中文字幕 91| 欧美五月婷婷| 亚洲AV无码一区二区三区牲色| 国产成人无码AV在线播放动漫| 免费国产高清视频| 日日碰狠狠添天天爽| 色婷婷在线播放| 日本免费精品| 国内精品免费| 亚洲熟女中文字幕男人总站| 精品少妇人妻一区二区| 亚洲成人77777| 久草国产在线观看| 国产精品成| 中文字幕亚洲乱码熟女1区2区| 性色一区| 国产喷水视频| 久久久久久久97| 天堂久久久久久中文字幕| 福利国产微拍广场一区视频在线 | 伊人成人在线视频| 国内精品一区二区在线观看| 中文无码日韩精品| 久久鸭综合久久国产| 尤物成AV人片在线观看| 免费三A级毛片视频| 亚欧成人无码AV在线播放| 亚亚洲乱码一二三四区| 精品在线免费播放| 四虎影视永久在线精品| 中日无码在线观看| 在线精品自拍| 91美女视频在线观看| 国产人妖视频一区在线观看| a级毛片免费看| 久久男人资源站| 四虎影视无码永久免费观看| 99在线免费播放| 永久免费av网站可以直接看的| 在线亚洲小视频| 扒开粉嫩的小缝隙喷白浆视频| 成年女人18毛片毛片免费| 成人免费黄色小视频| 国产 在线视频无码| 亚洲V日韩V无码一区二区 | 精品人妻无码中字系列| A级毛片高清免费视频就| 国产av一码二码三码无码| 久久国语对白| 自偷自拍三级全三级视频| 亚洲永久视频|