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

一種分布式架構下的實時消息同步機制的設計與實現

2018-06-08 10:03:40陳鑫
科技視界 2018年8期
關鍵詞:數據庫

陳鑫

【摘 要】由于筆者工作中經常面臨如何快速、準確的實現多終端之間基于Client/Server架構下實施消息同步的問題。于是,通過引用數據庫中的Service Broker技術和WCF消息框架,開發并實現了一套分布式架構下的實時消息同步中間件。本文以此為契機,介紹了這種分布式架構下的實時消息同步機制的設計與實現方法。本文先對這種消息同步機制的架構進行了介紹,給出了其實現框架,進而介紹了如何在此框架下有效的構建消息傳遞的機制,并對其性能進行了分析。本套解決方案已經成功應用在空中交通管制專業中,實現了面向空中交通管制的消息實施傳遞,并對其他行業有輕量級實時消息傳遞需求的應用有一定參考作用。

【關鍵詞】消息實時同步;空中交通管制

中圖分類號: TP277 文獻標識碼: A 文章編號: 2095-2457(2018)08-0234-002

Design and implementation of a real-time message synchronization mechanism under a distributed architecture

CHEN Xin

(China Civil Aviation Air Traffic Management Bureau, Guangzhou, Guangdong 510000, China)

【Abstract】Since my work is often faced with how to quickly and accurately implement the problem of implementing message synchronization between multiple terminals based on Client/Server architecture. Therefore, a set of real-time message synchronization middleware under a distributed architecture is developed and implemented by referring to the Service Broker technology and WCF message framework in the database. This article takes this opportunity to introduce the design and implementation of a real-time message synchronization mechanism under this distributed architecture.

This paper first introduces the architecture of this message synchronization mechanism, gives its implementation framework, and then introduces how to build a message delivery mechanism effectively under this framework and analyzes its performance. This set of solutions has been successfully applied in the air traffic control professional, realized the implementation of message transmission for air traffic control, and has certain reference effect on the application of lightweight real-time messaging needs in other industries.

【Key words】Real-time synchronization of messages; Air traffic control

如何讓數據庫中不斷變化的航班數據無延時的送給管制員一直是困擾開發人員的一個課題。在以往的系統中,大部分采用的技術是定時的查詢數據庫,獲得數據庫中變化的數據或者獲取整個數據庫中最新的快照,然后通過處理之后再前臺展現出來。這樣的方法就存在數據更新不及時,并發訪問時突發數據量大,容易發生數據庫死鎖等問題。不僅在用戶感受上,也在系統穩定性上處于不利狀態。如果在管制員對航班進行管制的時候,能獲得實時的航班數據將大大提高管制的效率和安全性,不僅如此,這樣的方式也避免了高頻率的整表輪詢,隔離了數據庫和前臺應用程序,從技術上大大提高了系統的穩定性。隨著微軟.NET 3.x開發平臺和SQL SERVER 2005的推出,將數據實時傳送給管制員從技術上走向了可能。中南空管局通信網絡中心在近期的塔臺自動化項目中,就采用了這樣的刷新方案。

整個數據實時刷新解決方案的架構包括了三組程序:數據庫激發層(Messages Activate Layer),消息處理服務器(Messages Process Server),客戶端消息處理核心(Messages Process Client Core)。其中,數據庫激發層主要用來捕獲數據庫發生的變化,并且把變化信息存儲進一個可靠的安全隊列中。消息處理服務器以將監聽到的數據庫發生的變化進行解析,重構,并且發送給客戶端??蛻舳讼⑻幚砗诵挠脕肀WC和服務端的連接,同時將接收到的數據緩存和傳送給前臺程序。

SQL SERVER 2005在SQL SERVER 2005中引入了Service Broker的概念。Service Broker 為 SQL Server 提供隊列和可靠的消息傳遞。利用觸發器和Service Broker的消息隊列我們可以構建一個消息激發層(Messages Activate Layer),利用這個消息激發層我們可以將數據庫中某個表的變化組織成XML格式的消息,并放入Service Broker提供的消息隊列中。其結構簡圖如上:

在Service Broker提供的消息隊列中,提供給用戶一個安全的消息隊列,所謂安全就是當數據庫訪問程序沒有顯式取走數據之前或者消息在失效之前,消息將會安全的被保存在消息隊列中。

值得一提的是,在觸發器封裝消息時必須必須和消息拆箱擁有相同的類型,從ServiceBroker設計書中看出在Service Broker中必須按照以下要求預先定義好進入消息隊列的數據類型和輸出隊列的消息類型,在消息入隊和出隊時都必須遵循以下定義:

CREATE MESSAGE TYPE message_type_name

[ AUTHORIZATION owner_name ]

[ VALIDATION = { NONE

| EMPTY

| WELL_FORMED_XML

|VALID_XML WITH SCHEMA COLLECTION

schema_collection_name

} ]

[ ; ]

消息類型的定義就是要讓消息收發的雙方都遵循同樣一種數據類型對消息進行處理,以避免類型混亂導致無法正確輸出消息的情況。

在將數據庫變化存入隊列后就可以通過一個分布式的程序集來對消息進行解析和分發。這個消息傳遞模塊對于Service Broker來說是一個客戶端,他用阻塞監聽的方式等待消息隊列中的消息,一旦消息隊列中存在消息,則監聽線程將會獲得這條消息。其核心是利用了T-SQL中的RECEIVE語句。

[ WAITFOR ( ]

RECEIVE [ TOP ( n ) ]

[ ,...n ]

FROM

[ INTO table_variable ]

[ WHERE { conversation_handle = conversation_handle

| conversation_group_id = conversation_group_id } ]

[ ) ] [ , TIMEOUT timeout ]

[ ; ]

當消息處理服務器收到消息后將會對消息正文中類型化的XML的數據進行解包和分拆,然后發送已經在消息處理服務器上注冊的客戶端。

客戶端程序通過消息處理服務器的負載均衡控制模塊獲得連接端口之后就可以通過WCF的訂閱發布模式連接到消息處理服務器提供的tcp.net契約上,這個契約將會在消息處理服務器和消息處理客戶端之間建立一個安全的通信通道,并且通過這個通道,客戶端可以直接使用一個在消息處理服務器上定義的事件,通過這個事件,消息將會以.NET中的高級類型(例如DataTable)將數據發送給客戶端。

通過這樣的一個方案,數據庫產生的變化就可以避免以輪詢的方式傳遞到客戶端,而是通過阻塞監聽——委托事件的方式實施傳遞給前臺,消息流轉的時間資源開銷將被大大降低。從壓力測試的結果來看,一個消息處理服務器對應一個消息處理客戶端的情況下,每分鐘消息傳遞的最大值是2400條。在多個客戶端的情況下,處理效率會略減。

【參考文獻】

[1]虞益誠.SQL Server 2005數據庫應用技術(第二版). 中國鐵道出版社.

[2]趙麗輝,岳淑玲.JOY MUNDY.SQL Server 2005數據庫技術與應用.機械工業出版社.

[3]Klaus Aschenbrenner. Pro SQL Server 2005 Service Broker. APress.

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 国产成人精品在线| 91视频青青草| 婷婷综合缴情亚洲五月伊| 久久五月视频| 天堂亚洲网| 久草网视频在线| 亚洲大尺码专区影院| 亚洲IV视频免费在线光看| 国产成人AV男人的天堂| 亚洲AⅤ波多系列中文字幕| 欧美成人一级| 少妇精品久久久一区二区三区| 日本免费一区视频| 亚洲第一区欧美国产综合| 欧美一区日韩一区中文字幕页| 久久五月天国产自| 欧美日韩专区| 免费一极毛片| 在线日本国产成人免费的| 亚洲黄网视频| 亚洲香蕉久久| 日韩久草视频| 国产在线一区二区视频| 国产人在线成免费视频| 国产精品自拍合集| 日韩午夜福利在线观看| 国产女同自拍视频| 色婷婷综合在线| 中文字幕 欧美日韩| 久久网欧美| 手机在线免费不卡一区二| 亚洲天堂视频在线观看免费| 天堂av综合网| 视频二区亚洲精品| 欧美在线免费| 国产精品一区在线麻豆| 亚洲三级影院| 亚洲欧洲国产成人综合不卡| 久久久久亚洲Av片无码观看| 亚洲女同一区二区| 精品视频在线观看你懂的一区| 97国产在线观看| 欧美一区福利| 亚洲嫩模喷白浆| 五月天久久综合国产一区二区| 亚洲视频免费在线看| 国产成人高精品免费视频| 欧美在线综合视频| 狼友av永久网站免费观看| 亚洲伊人电影| 5555国产在线观看| 成人在线第一页| 国内精品一区二区在线观看| 国产成人a在线观看视频| 国产亚洲日韩av在线| 欧美日韩国产精品va| 欧美成人手机在线观看网址| 日韩欧美国产精品| 日韩欧美网址| 美女一区二区在线观看| 国产成人精品男人的天堂| 伊人91在线| 在线视频一区二区三区不卡| 国产一级片网址| 青青青伊人色综合久久| 午夜国产理论| 人妻夜夜爽天天爽| 国内精品伊人久久久久7777人| 国产精品成人一区二区| 亚洲无码四虎黄色网站| 亚洲AV电影不卡在线观看| 国产剧情伊人| 午夜欧美在线| 亚洲精品视频免费看| 日本一本正道综合久久dvd| 自偷自拍三级全三级视频| 亚洲αv毛片| 色婷婷色丁香| 又黄又湿又爽的视频| 色成人综合| 久久久久国产精品嫩草影院| 在线观看国产精美视频|