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

主站蜘蛛池模板: 国产成人免费| av一区二区三区高清久久| 欧美一级黄色影院| 中文无码精品a∨在线观看| 国产精品微拍| 99热这里只有精品2| 欧美性色综合网| 黄片在线永久| 国产精品无码一二三视频| 无码日韩视频| 国产a v无码专区亚洲av| 2020极品精品国产| 一本大道东京热无码av| 亚洲成年网站在线观看| 婷婷亚洲天堂| 精品国产污污免费网站| 亚洲无码37.| 日韩高清一区 | 国产免费高清无需播放器| 国产不卡一级毛片视频| 国产欧美高清| 丰满人妻被猛烈进入无码| 欧美日韩亚洲国产主播第一区| 欧美亚洲国产精品久久蜜芽| 亚洲a级毛片| 国产第一色| 欧美成人一区午夜福利在线| 欧美h在线观看| 高清久久精品亚洲日韩Av| 91www在线观看| 99精品福利视频| 久久永久精品免费视频| 国产哺乳奶水91在线播放| 欧美在线三级| 国产精品区视频中文字幕| 亚洲无码高清一区二区| 国产自视频| 中文字幕天无码久久精品视频免费 | 国产精品一区不卡| 精品一区二区三区水蜜桃| 国产丝袜91| 国产精品久久精品| 国产无码性爱一区二区三区| 国产人成午夜免费看| 午夜成人在线视频| 国产乱人伦AV在线A| 性喷潮久久久久久久久| 日韩在线欧美在线| 91网址在线播放| 亚洲成人一区在线| 成人综合在线观看| 红杏AV在线无码| 国产99欧美精品久久精品久久| 亚洲天堂视频在线观看免费| 国产综合日韩另类一区二区| 国产一区在线视频观看| a国产精品| 精品国产中文一级毛片在线看| 不卡视频国产| 成人福利在线观看| 高清欧美性猛交XXXX黑人猛交| 亚洲视频免| 日韩欧美网址| 国产精品一区在线麻豆| 国产哺乳奶水91在线播放| 日韩中文字幕亚洲无线码| 99无码中文字幕视频| 久久五月天国产自| 69综合网| 欧美日韩动态图| 亚洲国产一成久久精品国产成人综合| 在线高清亚洲精品二区| 午夜电影在线观看国产1区| 女同国产精品一区二区| 免费欧美一级| 欧美在线视频不卡| 日韩美一区二区| 国产在线观看精品| 久久窝窝国产精品午夜看片| 色老头综合网| 久久毛片网| 欧美视频免费一区二区三区|