亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        消息隊列在分布式系統(tǒng)數(shù)據(jù)中的應(yīng)用與分析

        2012-04-29 12:56:36李志剛劉竹旺
        商場現(xiàn)代化 2012年30期
        關(guān)鍵詞:分布式系統(tǒng)數(shù)據(jù)

        李志剛 劉竹旺

        [摘 要]隊列的主要目的是提供路由并保證消息的傳遞,如果發(fā)送消息時接收者不可用,消息隊列會保留消息,直到可以成功地傳遞它。消息隊列使應(yīng)用程序的集成和在不可靠但節(jié)省費(fèi)用的網(wǎng)絡(luò)上開發(fā)可靠的應(yīng)用程序變得更加容易。本文主要探討消息隊列在分布式系統(tǒng)數(shù)據(jù)中的應(yīng)用與分析。

        [關(guān)鍵詞]消息隊列 分布式系統(tǒng) 數(shù)據(jù)

        消息隊列是一種進(jìn)程間通訊機(jī)制,本文對單機(jī)消息隊列進(jìn)行了有效的擴(kuò)展,使其分布在網(wǎng)絡(luò)上作為一種基礎(chǔ)中間件平臺為分布式計算提供服務(wù)。隨著各種計算機(jī)標(biāo)準(zhǔn)的出現(xiàn)和技術(shù)的進(jìn)步,中間件技術(shù)作為軟件行業(yè)崛起的一個嶄新分支,正在全球范圍內(nèi)迅猛發(fā)展,缺少一個開放的標(biāo)準(zhǔn)是消息中間件不能被大量使用的重要障礙。中間件技術(shù)的廣泛運(yùn)用是在最近10年。消息中間件是中間件范疇中發(fā)展最快的中間件類型之一。

        一、消息隊列方法的基本設(shè)計

        消息隊列是操作系統(tǒng)的進(jìn)程之間用于通信的一種機(jī)制,兩個或多個進(jìn)程間通過訪問共同的消息隊列完成消息的交換。將消息隊列的概念擴(kuò)展到位于分布式環(huán)境下不同站點上應(yīng)用程序間的通信,由消息隊列機(jī)制實現(xiàn)網(wǎng)絡(luò)上的可靠消息傳送,其中涉及的消息隊列有消息接收隊列、更新發(fā)送表、消息發(fā)送管理器和消息接收管理器。

        當(dāng)應(yīng)用程序在處理數(shù)據(jù)庫修改或更新事務(wù)時,修改更新了本地服務(wù)器的數(shù)據(jù)庫中所保存的數(shù)據(jù),同時應(yīng)用程序?qū)⒏滦畔⒑透滤鶊?zhí)行的SQL(StructuredQueryLanguage)語句以消息的形式寫入到更新發(fā)送表,更新發(fā)送表的內(nèi)容和本次本地服務(wù)器數(shù)據(jù)庫更新的內(nèi)容一致。根據(jù)服務(wù)器軟件的設(shè)定,當(dāng)服務(wù)器發(fā)起與其他服務(wù)器的數(shù)據(jù)一致操作時,觸發(fā)消息發(fā)送管理器將更新發(fā)送表的內(nèi)容封裝成Message消息發(fā)送給其他服務(wù)器。對本地而言,若無異常,消息將送到目的地址所指示的遠(yuǎn)端站點的消息接收隊列中。同時接送端,一個后臺消息接收管理器一直監(jiān)視著消息接收隊列。當(dāng)檢測到有消息到達(dá)時,開始讀取消息,并根據(jù)讀到的消息內(nèi)容恢復(fù)成相應(yīng)的SQL語句,根據(jù)SQL語句對本地數(shù)據(jù)庫執(zhí)行所描述的更新事務(wù)。如果更新成功,則處理結(jié)束,并返回“更新成功”,否則返回“更新失敗”。此時發(fā)送端的消息發(fā)送管理器一直監(jiān)視接收隊列,根據(jù)收到的消息類型進(jìn)行相應(yīng)的操作,若各服務(wù)器更新成功,則將該更新發(fā)送表內(nèi)容刪除,若失敗,則周期性地重發(fā)該消息。

        二、分布式消息隊列操作

        分布式消息隊列的寫操作就是向一個已有的消息隊列中發(fā)送數(shù)據(jù)的過程。寫消息之前,用戶進(jìn)程應(yīng)獲得其消息隊列描述符msqid的值,然后由msgsnd_d()系統(tǒng)調(diào)用將數(shù)據(jù)寫入由msqid值指定的消息隊列。具體過程如下:用戶進(jìn)程調(diào)用msgsnd_d()時,系統(tǒng)調(diào)用msgsnd_d()首先向本地的守護(hù)進(jìn)程發(fā)送“寫數(shù)據(jù)”的請求信息,在請求信息中包含msgsnd_d()調(diào)用的參數(shù)msqid、msgflg和msgp,然后等待守護(hù)進(jìn)程返回應(yīng)答信息,收到應(yīng)答信息后把結(jié)果返回給用戶進(jìn)程,若是錯誤信息,還要設(shè)置相應(yīng)的錯誤信號errno。守護(hù)進(jìn)程收到“寫數(shù)據(jù)”的請求后也派生出一個子進(jìn)程處理。從請求信息中分離出參數(shù)msqid、msgflg和要寫入的信息,然后在key值表中查找msqid,若不存在則將錯誤信息返回給用戶進(jìn)程,若存在則返回其key值表中的key值及所在節(jié)點的IP值,然后守護(hù)進(jìn)程根據(jù)得到的IP來判斷消息隊列在本地還是在異地。若在本地則調(diào)用msgsnd()向本地消息隊列中寫入數(shù)據(jù)并將結(jié)果返回給用戶進(jìn)程;若在異地則根據(jù)IP向相應(yīng)的節(jié)點發(fā)送包括key、msgflg和要寫入信息的“寫數(shù)據(jù)”請求,在收到應(yīng)答信息后將結(jié)果返回給用戶進(jìn)程。

        三、消息隊列在分布式系統(tǒng)數(shù)據(jù)中的應(yīng)用

        分布式數(shù)據(jù)庫系統(tǒng)中的每個網(wǎng)絡(luò)節(jié)點上,在數(shù)據(jù)一致性功能模塊下,都由5個功能模塊構(gòu)成:發(fā)送更新消息,接收更新消息,消息發(fā)送管理,消息接收管理和更新消息處理。

        1.發(fā)送更新消息

        發(fā)送更新消息的功能是向整個網(wǎng)絡(luò)所有的服務(wù)器發(fā)送更新消息數(shù)據(jù),由此使其他所有的服務(wù)器根據(jù)該消息的內(nèi)容實現(xiàn)與本服務(wù)器間的數(shù)據(jù)一致。發(fā)送更新消息通過接收本地服務(wù)器所執(zhí)行的SQL語句中對服務(wù)器中數(shù)據(jù)做出了修改的語句,接收數(shù)據(jù)修改信息,并將接收的數(shù)據(jù)修改信息封裝成消息的格式,存儲在更新發(fā)送表中,在收到發(fā)送命令后,發(fā)送給其他服務(wù)器,實現(xiàn)各服務(wù)器與本服務(wù)器的數(shù)據(jù)同步。

        當(dāng)發(fā)送更新消息收到數(shù)據(jù)庫執(zhí)行SQL發(fā)來的數(shù)據(jù)修改信息時,先將數(shù)據(jù)修改信息封裝成消息中的數(shù)據(jù)信息格式。消息發(fā)送命令被觸發(fā)后,在消息發(fā)送管理器的控制下,將消息以組播的形式發(fā)送給其他所有在線服務(wù)的業(yè)務(wù)服務(wù)器,實現(xiàn)正常情況下的多服務(wù)器間的數(shù)據(jù)同步。

        2.接收更新消息

        接收更新消息的功能是實現(xiàn)接收所有數(shù)據(jù)同步信息(業(yè)務(wù)層發(fā)來的業(yè)務(wù)數(shù)據(jù)、其他服務(wù)器發(fā)來的數(shù)據(jù)同步消息),并根據(jù)收到消息的類型對數(shù)據(jù)進(jìn)行相應(yīng)處理。當(dāng)收到的數(shù)據(jù)是業(yè)務(wù)服務(wù)器發(fā)送來的業(yè)務(wù)數(shù)據(jù)時,對數(shù)據(jù)加以解析后將解析的數(shù)據(jù)存儲到相應(yīng)的緩存區(qū)域。當(dāng)接收到的數(shù)據(jù)是其他服務(wù)器發(fā)來的數(shù)據(jù)同步信息時,對同步數(shù)據(jù)加以解析,解析消息中的數(shù)據(jù)信息部分,獲取一次業(yè)務(wù)的所有數(shù)據(jù)操作并對本服務(wù)器數(shù)據(jù)庫中的數(shù)據(jù)執(zhí)行相應(yīng)的SQL語句,進(jìn)行相應(yīng)的操作,從而實現(xiàn)本服務(wù)器與消息發(fā)送端服務(wù)器之間的數(shù)據(jù)同步。從而實現(xiàn)了在正常運(yùn)轉(zhuǎn)情況下的數(shù)據(jù)同步操作。

        3.消息發(fā)送管理

        每個服務(wù)器在執(zhí)行對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行修改操作的SQL語句后,消息發(fā)送管理模塊對更新發(fā)布表執(zhí)行插入操作,添加一條與該條SQL語句相應(yīng)的消息。服務(wù)器觸發(fā)進(jìn)行數(shù)據(jù)一致過程后,要求與其他服務(wù)器進(jìn)行數(shù)據(jù)一致,服務(wù)器發(fā)送數(shù)據(jù)一致命令給消息發(fā)送管理模塊,消息發(fā)送管理模塊被觸發(fā)后將消息信息發(fā)送表的內(nèi)容取出封裝成用于傳送消息,并根據(jù)當(dāng)前服務(wù)器的拓?fù)湫畔⑾l(fā)送給其他服務(wù)器。當(dāng)消息發(fā)送管理器模塊接收到消息收管理模塊發(fā)來的重新發(fā)送請求時,將消息信息發(fā)送表中的數(shù)據(jù)重新發(fā)送給數(shù)據(jù)同步出錯的服務(wù)器。

        4.更新消息處理

        服務(wù)器的接收更新消息模塊收到新消息后,消息接收管理模塊要求接收更新消息模塊將該消息交給更新消息處理模塊。更新消息處理模塊接收到消息后,按照消息編碼過程的反過程解析消息。將消息中的數(shù)據(jù)信息解析為相應(yīng)的SQL語句,并根據(jù)這一SQL語句對服務(wù)器的數(shù)據(jù)進(jìn)行更新。如果更新成功則向發(fā)送方返回數(shù)據(jù)更新成功并將本次更新的數(shù)據(jù)寫入數(shù)據(jù)交換表,否則返回發(fā)送失敗。

        參考文獻(xiàn):

        [1]黃姝娟,杜承烈,尤濤.中間件技術(shù)實時性能的比較[J].計算機(jī)工程,2009,35(11):32-37.

        [2]徐高潮,胡亮,鞠九賓.分布式計算系統(tǒng)[M].北京:高等教育出版社,2004:23-36.

        [3]勒敏,劉建輝.分布式數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)一致性維護(hù)方法[J].科技廣場,2008 (3):31-33.

        猜你喜歡
        分布式系統(tǒng)數(shù)據(jù)
        基于現(xiàn)場采集與云服務(wù)的流量積算管理系統(tǒng)研究
        典型應(yīng)用領(lǐng)域全球定量遙感產(chǎn)品生產(chǎn)體系
        科技資訊(2016年25期)2016-12-27 16:23:06
        以數(shù)據(jù)為中心的分布式系統(tǒng)自適應(yīng)集成方法
        分布式系統(tǒng)中的辯證對立統(tǒng)一概念與方法
        溫室控制系統(tǒng)及控制方法的研究
        公路工程試驗檢測存在的問題及措施
        價值工程(2016年30期)2016-11-24 16:39:03
        一種基于Hadoop的海量圖片檢索策略
        焊接工藝仿真訓(xùn)練系統(tǒng)中焊點數(shù)據(jù)的建立方法
        一種借助數(shù)據(jù)處理構(gòu)建的智能食堂管理系統(tǒng)
        數(shù)據(jù)化藝術(shù)的生成探究
        国产精品视频亚洲二区| 久久婷婷国产综合精品| 亚洲色图偷拍自拍亚洲色图| 中文字幕成人乱码熟女精品国50| 爱性久久久久久久久| 牛牛本精品99久久精品88m| 开心激情站开心激情网六月婷婷| 亚洲av色av成人噜噜噜| 大学生粉嫩无套流白浆| 久热在线播放中文字幕| 国产在线AⅤ精品性色| 亚洲一品道一区二区三区| 日本最新免费二区三区| 四虎影视在线观看2413| 亚洲av色香蕉一区二区蜜桃| 久久精品国产亚洲av性瑜伽| 两个人看的www免费视频中文| 国产国产人精品视频69| 日本道免费一区日韩精品| 国产三a级三级日产三级野外| 无码人妻精品一区二区在线视频| 在线精品无码一区二区三区| 少妇又色又爽又刺激的视频| 日产精品99久久久久久| 亚洲精品网站在线观看你懂的| 在线a人片免费观看国产| 日本精品一级二区三级| 亚洲精品一品区二品区三品区| 国内久久婷婷激情五月天| 青青草免费在线手机视频| 国产毛片av最新视频| 水蜜桃无码视频在线观看| 国产成人cao在线| av影片手机在线观看免费网址| 色狠狠色噜噜av天堂一区| 久久er国产精品免费观看8| 久久综合加勒比东京热| 无码人妻一区二区三区免费看| 欧美精品偷自拍另类在线观看| 扒开双腿操女人逼的免费视频| 亚洲天堂成人av在线观看|