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

高并發數據共享系統基于Push—Pull混合模式的性能優化

2018-07-12 13:23:42王子光王子明
現代信息科技 2018年4期

王子光 王子明

摘 要:隨著面向服務架構的大規模分布式系統的應用,多個系統之間由于數據集成的需要,彼此間要高并發傳遞大量數據,特別是狀態數據的同步,對數據的實時性要求越來越高。數據單純通過客戶端以Pull(拉取)模式獲取已經不能滿足實時性要求,高頻率服務調用也會給服務端數據庫帶來較大的壓力。單純通過服務端以Push(推送)模式推送給客戶端也不能滿足客戶端對個性化數據的需求,大量推送既會給服務端帶來較大壓力,又會造成客戶端數據處理不及時。本文針對高并發數據共享系統應用過程中產生的性能問題,提出一種基于pub/sub消息處理的Push-Pull混合模式優化方案,實踐表明該方案極大地提高了系統可用性及數據安全性,對同類系統的性能優化具有較好的借鑒作用。

關鍵詞:高并發;數據共享系統;性能優化;pub/sub消息處理;Push-Pull混合模式

中圖分類號:TN929.5 文獻標識碼:A 文章編號:2096-4706(2018)04-0065-03

Abstract:With the application of large-scale distributed systems based on service oriented architecture,due to the need of data integration between multiple systems,these systems transfer large amounts of data between each other,especially the synchronous state of the data. The data obtained by the client through pull mode cannot meet the real-time requirements,high-frequent service-calls have also bring greater pressure to the database server through push mode;only by the server through the push mode to the client,it cannot meet the needs of personalized data,also a large number of push will bring greater pressure on both server and client which cannot cause data processing timely. In this paper,with the performance problems in the application of the high-concurrent data sharing system,it put forward a kind of Push-Pull mixed mode optimization scheme based on pub/sub message processing,the practice shows that the scheme greatly improves the system availability and data security,also provides a good reference for optimizing the performance of similar systems.

Keywords:high concurrency;data sharing system;performance optimization;pub/sub processing;push-pull mixed mode

0 引 言

目前,面向服務架構的大規模分布式系統之間的數據共享和集成已經成為越來越重要的研究問題。傳統的系統間數據共享和集成多采用Push或Pull兩種方式。Push方式多采用消息推送模式,即由服務端將數據推送給客戶端,但推送數據信息過多就不能滿足客戶端的個性化數據需求。Pull方式多采用Webservice服務方式,即客戶端通過主動調用服務端開放的服務接口獲取數據,但由于Webservice服務存在網絡傳輸不穩定以及開銷較大的弊端,因此在高并發系統中進行數據共享會存在性能問題。本文設計并實現了一種Push-Pull混合模式優化方案,服務端通過pub/sub消息處理機制向多客戶端推送“微數據”,客戶端根據這些數據判斷調用服務接口的時機,以獲取其他個性化數據,較好地解決了高并發數據共享系統中存在的實際性能問題。

1 Push-Pull模式介紹

推送(Push)技術是根據用戶喜好,有目的、有選擇性地定期將用戶感興趣的信息主動發送到用戶可查看的設備上。Push技術的主要優點在于及時性,能夠方便地向用戶“推送”不斷更新的動態信息,且對用戶專業性要求低。拉取(Pull)技術指用戶主動發起請求,傳統意義上的拉取是指用戶有目的地在網絡上主動查詢信息,用戶通過瀏覽器發送請求,由Web獲取所需信息,并返回給用戶。面對擁有海量信息的Internet環境,搜索引擎是較為有效的網絡信息“拉取”(查詢)的檢索工具[1]。Web應用系統之間的數據拉取通常是指客戶端主動調用服務端的服務接口或其他應用接口來獲取數據,以達到數據共享的目的。

Push技術主要優點在于實時性,客戶端無需額外保存狀態,缺點是不能保證推送信息一定能夠發送成功,推送量過大會給服務端造成性能壓力。另外,推送數據也缺乏個性化定制。Pull技術的主要優點是客戶端主動拉取數據,針對性較強,能滿足個性化需求,且網絡上所傳輸的數據量較少,方便服務端和客戶端通信,但缺點是實時性較差,客戶端無效請求較多,對客戶端的要求較高[2]。

2 面向服務架構的高并發數據共享系統的性能問題

高并發數據共享系統保存著企業可共享的核心業務數據,外圍系統只能通過共享系統獲取業務數據,核心業務數據量龐大且更新頻繁。共享系統通過ESB向外圍系統提供多種數據查詢服務(Webservice),外圍系統通過調用查詢服務獲取數據,達到數據共享的目的,此種Pull模式外圍系統是被動的,并嚴重依賴服務質量及網絡穩定性,而且客戶端為了獲取數據可能會多次調用不同的服務接口,大大增加了客戶端的運行開銷,也會由于客戶端的高并發調用造成服務端數據庫的巨大壓力,比如外圍系統需要經常獲取核心業務數據“狀態”信息。在Pull模式下,外圍系統常會使用“輪詢”方式,雖然這種方式設計較為簡單,外圍系統只需通過定時啟動輪詢服務來獲取服務端的狀態數據,但是“輪詢”效果卻不甚理想。一是狀態信息強調時效性,輪詢頻率設置過高,會造成服務端數據庫壓力增大,客戶端獲取數據延遲;二是輪詢頻率設置過低,會造成獲取狀態信息延遲過大,失去數據價值;三是狀態信息未更新,輪詢仍然啟動,造成“空轉”現象。

Pull數據共享模式如圖1所示。

為了解決上述問題,可以設計一種Push處理模式,將數據共享系統的核心業務數據通過消息中間件(MOM),如開源的ActiveMQ、RabbitMQ等,并以Pub/Sub模式主動向客戶端推送數據。由數據共享系統發布主題,客戶端訂閱感興趣的主題,ESB服務總線進行消息轉發并記錄消息日志。

這種發布訂閱處理方式減少了客戶端的調用開銷,但推送數據量過大仍會給服務端造成較大壓力。另外,還可能不滿足客戶端的個性化數據需求,推送的很多數據客戶端沒有使用,反而會增加調用接口的次數。Push數據共享模式如圖2所示。

3 基于Pub/Sub消息處理的Push-Pull混合模式優化方案

為了結合Push和Pull兩種消息處理模式的優勢,解決在高并發數據共享系統中出現的性能問題,這里提出一種基于消息中間件的Pub/Sub模式的Push-Pull混合模式優化方案,如圖3所示。

首先,服務端與客戶端通過Pub/Sub消息模式進行多主題消息推送與接收。Push模式的關鍵是需要設計好推送給客戶端的“微數據”。“微數據”是指多個客戶端需要的“公共數據”。“公共數據”推送量需要適度,既不能太多,也不能太少,還需考慮客戶端的消費能力。太多會造成服務端推送壓力大,速度慢,而客戶端消費有限;太少又會過多依賴拉取數據,數據延遲較大,且對服務端仍會造成一定壓力。“微數據”的設計應盡量滿足客戶端對業務維度基本公共數據的要求。

客戶端對推送數據的消費能力也是需要解決的重要問題。如果客戶端的處理邏輯復雜,可能會造成消息堆積,為了解決此問題,可將服務端推送過來的數據不加處理,先行存入客戶端臨時數據庫表中,客戶端自身啟動定時調度任務,選取本地數據進行處理,同時為了保持數據時效性,可將定時調度頻率適當縮短。

另外,在滿足多客戶端基本公共數據要求的情況下,依靠服務調用的Pull模式獲取其他個性化數據。比如當客戶端獲取業務狀態等公共數據后,可根據當前狀態適時調用服務端提供的服務接口來獲取其他業務數據。

4 測試結果

保險業務狀態查詢系統(IQS)是保險核心數據共享系統(CBS)的某一外圍系統,通過與CBS的交互來獲取保險業務狀態的最新信息。這里兩個系統數據交互采用基于Push-Pull混合模式的異步處理交易方式,IQS系統通過ESB和Active MQ與CBS進行集成,這里ESB選用開源的Mule平臺,集成方式如圖4所示。

CBS設置新契約狀態變化、保全狀態變化、理賠狀態變化等11個主題,IQS系統進行持久性訂閱來獲取狀態信息。CBS在核心業務數據庫表中,如新契約表(T_POLICY)、保全表(T_POLICY_CHANGE)等主表增加tirgger,核心業務數據狀態變化后,自動觸發向CBS中的待通知表(T_BUSI_NOTIFY)插入數據,然后啟動Quartz定時任務,每5秒推送待通知表中數據給Mule并轉發給IQS,IQS成功接收后,將數據轉移至已通知表(T_BUSI_NOTIFIED)。

Push-Pull混合模式優化方案新契約主題“公共數據”設計如表1所示。

對11個主題中的每個主題進行10萬數據壓力測試,總量達到百萬。以數據量最大的新契約主題為例,測試結果如表2所示。

通過測試可以看到,混合模式的“公共數據”設計好后,除了少量個性化數據需求不能滿足客戶端需要接口調用外,調用次數大大減少,處理速度也比其他兩種處理方式提高了很多。

5 結 論

將此Push-Pull混合模式的性能優化方案應用于高并發數據共享系統,公共“微數據”的推送基本滿足了多客戶端的一般性需求,其他個性化數據只需較少地調用服務接口即可滿足,減少了資源消耗,大大減輕了服務端和客戶端的壓力,取得了較好應用效果。

參考文獻:

[1] CSDN.消息系統該Push/Pull模式分析 [EB/OL].https://blog.csdn.net/pi9nc/article/details/27714745,2014-05-30.

[2] 索傳軍.Push技術開發應用研究述評 [J].現代圖書情報技術,2003(3):48-50+63.

作者簡介:王子光(1984-),男,河南人,碩士。研究方向:軟件工程、軟件技術在企業應用;王子明(1984-),男,河南人,工程師,碩士。研究方向:軟件工程、軟件開發技術。

主站蜘蛛池模板: 免费播放毛片| 欧美视频免费一区二区三区| 91久久青青草原精品国产| 波多野结衣AV无码久久一区| 久久一日本道色综合久久 | 欧美va亚洲va香蕉在线| 亚洲精品无码不卡在线播放| 福利视频久久| 动漫精品啪啪一区二区三区| 亚洲一区二区黄色| 国产综合亚洲欧洲区精品无码| 国产91小视频在线观看| 国产精欧美一区二区三区| 热九九精品| 狠狠ⅴ日韩v欧美v天堂| 成人免费网站久久久| 国产精品亚欧美一区二区| 天天婬欲婬香婬色婬视频播放| 国产美女叼嘿视频免费看| 亚洲欧美成人在线视频| 日韩 欧美 小说 综合网 另类| 男人天堂亚洲天堂| 日韩精品一区二区三区视频免费看| 黄色污网站在线观看| 国内精自视频品线一二区| 国产精品第页| 久久亚洲国产视频| 欧美69视频在线| 国产精品嫩草影院视频| 免费观看无遮挡www的小视频| 中文字幕日韩视频欧美一区| 亚洲天堂免费| aⅴ免费在线观看| 国产精品一区二区久久精品无码| 亚洲国产成熟视频在线多多| 亚洲成a人片| 日本高清有码人妻| 国产成熟女人性满足视频| 超碰色了色| 色哟哟色院91精品网站| 91小视频在线| 亚洲欧美国产五月天综合| 91成人精品视频| 国产美女精品人人做人人爽| 午夜毛片免费观看视频 | 最新精品久久精品| 亚洲午夜国产片在线观看| 亚洲国产成人麻豆精品| 热re99久久精品国99热| 国产爽歪歪免费视频在线观看 | 色综合天天综合中文网| 免费不卡视频| 国产精品综合色区在线观看| 精品人妻一区无码视频| 久久女人网| 91精品国产麻豆国产自产在线| 国产浮力第一页永久地址| 国产喷水视频| 久久免费看片| 丁香婷婷激情综合激情| 亚洲二区视频| 在线国产欧美| 91精品国产一区自在线拍| 91成人在线观看视频| 亚洲成年网站在线观看| 日本成人一区| 国产成人一区二区| 好紧太爽了视频免费无码| 久久综合伊人 六十路| 毛片视频网址| 国产乱人免费视频| 欧美日韩午夜| 尤物特级无码毛片免费| 麻豆a级片| 久久国产乱子伦视频无卡顿| 噜噜噜久久| 色婷婷电影网| 毛片基地视频| 国产麻豆aⅴ精品无码| 国产免费自拍视频| 91av国产在线| 亚洲AV人人澡人人双人|