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

主站蜘蛛池模板: 亚洲码一区二区三区| 日本一区高清| 朝桐光一区二区| 日韩免费成人| 再看日本中文字幕在线观看| 国产真实二区一区在线亚洲| 永久毛片在线播| 亚洲综合二区| 国产精品v欧美| 亚洲成人网在线播放| 欧美色综合网站| 久久精品丝袜高跟鞋| 日韩欧美色综合| 四虎影视库国产精品一区| 欧美日本在线一区二区三区| 92午夜福利影院一区二区三区| 亚洲精品无码久久久久苍井空| 永久免费无码成人网站| 国产又黄又硬又粗| 婷婷伊人久久| h视频在线播放| 免费看a级毛片| 久久精品国产精品国产一区| a毛片基地免费大全| 欧美日韩国产高清一区二区三区| 亚洲天堂区| 久久这里只精品国产99热8| 另类重口100页在线播放| 日韩精品专区免费无码aⅴ| 亚洲无码37.| 伊人91视频| 欧美成人在线免费| 特级做a爰片毛片免费69| 天天综合亚洲| 欧美国产成人在线| 日韩中文无码av超清| 国产系列在线| 国产又粗又爽视频| 亚洲高清免费在线观看| 嫩草影院在线观看精品视频| 91热爆在线| 青青青国产视频手机| 久久久久久久蜜桃| 五月婷婷综合网| 亚洲AⅤ无码国产精品| 一级毛片中文字幕| 91激情视频| 久久综合九九亚洲一区| 久久精品视频一| 色噜噜狠狠色综合网图区| 亚洲码在线中文在线观看| 成人在线欧美| 毛片大全免费观看| 亚洲欧洲一区二区三区| 怡春院欧美一区二区三区免费 | 日日拍夜夜嗷嗷叫国产| 日韩午夜片| 人妖无码第一页| 亚洲激情99| 亚洲国产中文在线二区三区免| 色综合成人| 日韩欧美国产三级| 日韩欧美国产精品| 国产丝袜无码一区二区视频| 又爽又大又光又色的午夜视频| 国产午夜精品一区二区三| 精品剧情v国产在线观看| 国产成人夜色91| 国产一在线观看| 亚洲区第一页| 欧美日韩在线成人| 精品三级网站| 91久久偷偷做嫩草影院| AⅤ色综合久久天堂AV色综合 | 国产成人精彩在线视频50| 久久99国产综合精品1| 国产一国产一有一级毛片视频| 久久久亚洲色| 无套av在线| 香港一级毛片免费看| A级毛片高清免费视频就| 亚洲午夜国产片在线观看|