• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      高并發(fā)數(shù)據(jù)共享系統(tǒng)基于Push—Pull混合模式的性能優(yōu)化

      2018-07-12 13:23:42王子光王子明
      現(xiàn)代信息科技 2018年4期
      關(guān)鍵詞:性能優(yōu)化

      王子光 王子明

      摘 要:隨著面向服務(wù)架構(gòu)的大規(guī)模分布式系統(tǒng)的應(yīng)用,多個(gè)系統(tǒng)之間由于數(shù)據(jù)集成的需要,彼此間要高并發(fā)傳遞大量數(shù)據(jù),特別是狀態(tài)數(shù)據(jù)的同步,對(duì)數(shù)據(jù)的實(shí)時(shí)性要求越來(lái)越高。數(shù)據(jù)單純通過(guò)客戶端以Pull(拉?。┠J将@取已經(jīng)不能滿足實(shí)時(shí)性要求,高頻率服務(wù)調(diào)用也會(huì)給服務(wù)端數(shù)據(jù)庫(kù)帶來(lái)較大的壓力。單純通過(guò)服務(wù)端以Push(推送)模式推送給客戶端也不能滿足客戶端對(duì)個(gè)性化數(shù)據(jù)的需求,大量推送既會(huì)給服務(wù)端帶來(lái)較大壓力,又會(huì)造成客戶端數(shù)據(jù)處理不及時(shí)。本文針對(duì)高并發(fā)數(shù)據(jù)共享系統(tǒng)應(yīng)用過(guò)程中產(chǎn)生的性能問(wèn)題,提出一種基于pub/sub消息處理的Push-Pull混合模式優(yōu)化方案,實(shí)踐表明該方案極大地提高了系統(tǒng)可用性及數(shù)據(jù)安全性,對(duì)同類系統(tǒng)的性能優(yōu)化具有較好的借鑒作用。

      關(guān)鍵詞:高并發(fā);數(shù)據(jù)共享系統(tǒng);性能優(yōu)化;pub/sub消息處理;Push-Pull混合模式

      中圖分類號(hào):TN929.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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 引 言

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

      1 Push-Pull模式介紹

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

      Push技術(shù)主要優(yōu)點(diǎn)在于實(shí)時(shí)性,客戶端無(wú)需額外保存狀態(tài),缺點(diǎn)是不能保證推送信息一定能夠發(fā)送成功,推送量過(guò)大會(huì)給服務(wù)端造成性能壓力。另外,推送數(shù)據(jù)也缺乏個(gè)性化定制。Pull技術(shù)的主要優(yōu)點(diǎn)是客戶端主動(dòng)拉取數(shù)據(jù),針對(duì)性較強(qiáng),能滿足個(gè)性化需求,且網(wǎng)絡(luò)上所傳輸?shù)臄?shù)據(jù)量較少,方便服務(wù)端和客戶端通信,但缺點(diǎn)是實(shí)時(shí)性較差,客戶端無(wú)效請(qǐng)求較多,對(duì)客戶端的要求較高[2]。

      2 面向服務(wù)架構(gòu)的高并發(fā)數(shù)據(jù)共享系統(tǒng)的性能問(wèn)題

      高并發(fā)數(shù)據(jù)共享系統(tǒng)保存著企業(yè)可共享的核心業(yè)務(wù)數(shù)據(jù),外圍系統(tǒng)只能通過(guò)共享系統(tǒng)獲取業(yè)務(wù)數(shù)據(jù),核心業(yè)務(wù)數(shù)據(jù)量龐大且更新頻繁。共享系統(tǒng)通過(guò)ESB向外圍系統(tǒng)提供多種數(shù)據(jù)查詢服務(wù)(Webservice),外圍系統(tǒng)通過(guò)調(diào)用查詢服務(wù)獲取數(shù)據(jù),達(dá)到數(shù)據(jù)共享的目的,此種Pull模式外圍系統(tǒng)是被動(dòng)的,并嚴(yán)重依賴服務(wù)質(zhì)量及網(wǎng)絡(luò)穩(wěn)定性,而且客戶端為了獲取數(shù)據(jù)可能會(huì)多次調(diào)用不同的服務(wù)接口,大大增加了客戶端的運(yùn)行開(kāi)銷,也會(huì)由于客戶端的高并發(fā)調(diào)用造成服務(wù)端數(shù)據(jù)庫(kù)的巨大壓力,比如外圍系統(tǒng)需要經(jīng)常獲取核心業(yè)務(wù)數(shù)據(jù)“狀態(tài)”信息。在Pull模式下,外圍系統(tǒng)常會(huì)使用“輪詢”方式,雖然這種方式設(shè)計(jì)較為簡(jiǎn)單,外圍系統(tǒng)只需通過(guò)定時(shí)啟動(dòng)輪詢服務(wù)來(lái)獲取服務(wù)端的狀態(tài)數(shù)據(jù),但是“輪詢”效果卻不甚理想。一是狀態(tài)信息強(qiáng)調(diào)時(shí)效性,輪詢頻率設(shè)置過(guò)高,會(huì)造成服務(wù)端數(shù)據(jù)庫(kù)壓力增大,客戶端獲取數(shù)據(jù)延遲;二是輪詢頻率設(shè)置過(guò)低,會(huì)造成獲取狀態(tài)信息延遲過(guò)大,失去數(shù)據(jù)價(jià)值;三是狀態(tài)信息未更新,輪詢?nèi)匀粏?dòng),造成“空轉(zhuǎn)”現(xiàn)象。

      Pull數(shù)據(jù)共享模式如圖1所示。

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

      這種發(fā)布訂閱處理方式減少了客戶端的調(diào)用開(kāi)銷,但推送數(shù)據(jù)量過(guò)大仍會(huì)給服務(wù)端造成較大壓力。另外,還可能不滿足客戶端的個(gè)性化數(shù)據(jù)需求,推送的很多數(shù)據(jù)客戶端沒(méi)有使用,反而會(huì)增加調(diào)用接口的次數(shù)。Push數(shù)據(jù)共享模式如圖2所示。

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

      為了結(jié)合Push和Pull兩種消息處理模式的優(yōu)勢(shì),解決在高并發(fā)數(shù)據(jù)共享系統(tǒng)中出現(xiàn)的性能問(wèn)題,這里提出一種基于消息中間件的Pub/Sub模式的Push-Pull混合模式優(yōu)化方案,如圖3所示。

      首先,服務(wù)端與客戶端通過(guò)Pub/Sub消息模式進(jìn)行多主題消息推送與接收。Push模式的關(guān)鍵是需要設(shè)計(jì)好推送給客戶端的“微數(shù)據(jù)”?!拔?shù)據(jù)”是指多個(gè)客戶端需要的“公共數(shù)據(jù)”?!肮矓?shù)據(jù)”推送量需要適度,既不能太多,也不能太少,還需考慮客戶端的消費(fèi)能力。太多會(huì)造成服務(wù)端推送壓力大,速度慢,而客戶端消費(fèi)有限;太少又會(huì)過(guò)多依賴?yán)?shù)據(jù),數(shù)據(jù)延遲較大,且對(duì)服務(wù)端仍會(huì)造成一定壓力?!拔?shù)據(jù)”的設(shè)計(jì)應(yīng)盡量滿足客戶端對(duì)業(yè)務(wù)維度基本公共數(shù)據(jù)的要求。

      客戶端對(duì)推送數(shù)據(jù)的消費(fèi)能力也是需要解決的重要問(wèn)題。如果客戶端的處理邏輯復(fù)雜,可能會(huì)造成消息堆積,為了解決此問(wèn)題,可將服務(wù)端推送過(guò)來(lái)的數(shù)據(jù)不加處理,先行存入客戶端臨時(shí)數(shù)據(jù)庫(kù)表中,客戶端自身啟動(dòng)定時(shí)調(diào)度任務(wù),選取本地?cái)?shù)據(jù)進(jìn)行處理,同時(shí)為了保持?jǐn)?shù)據(jù)時(shí)效性,可將定時(shí)調(diào)度頻率適當(dāng)縮短。

      另外,在滿足多客戶端基本公共數(shù)據(jù)要求的情況下,依靠服務(wù)調(diào)用的Pull模式獲取其他個(gè)性化數(shù)據(jù)。比如當(dāng)客戶端獲取業(yè)務(wù)狀態(tài)等公共數(shù)據(jù)后,可根據(jù)當(dāng)前狀態(tài)適時(shí)調(diào)用服務(wù)端提供的服務(wù)接口來(lái)獲取其他業(yè)務(wù)數(shù)據(jù)。

      4 測(cè)試結(jié)果

      保險(xiǎn)業(yè)務(wù)狀態(tài)查詢系統(tǒng)(IQS)是保險(xiǎn)核心數(shù)據(jù)共享系統(tǒng)(CBS)的某一外圍系統(tǒng),通過(guò)與CBS的交互來(lái)獲取保險(xiǎn)業(yè)務(wù)狀態(tài)的最新信息。這里兩個(gè)系統(tǒng)數(shù)據(jù)交互采用基于Push-Pull混合模式的異步處理交易方式,IQS系統(tǒng)通過(guò)ESB和Active MQ與CBS進(jìn)行集成,這里ESB選用開(kāi)源的Mule平臺(tái),集成方式如圖4所示。

      CBS設(shè)置新契約狀態(tài)變化、保全狀態(tài)變化、理賠狀態(tài)變化等11個(gè)主題,IQS系統(tǒng)進(jìn)行持久性訂閱來(lái)獲取狀態(tài)信息。CBS在核心業(yè)務(wù)數(shù)據(jù)庫(kù)表中,如新契約表(T_POLICY)、保全表(T_POLICY_CHANGE)等主表增加tirgger,核心業(yè)務(wù)數(shù)據(jù)狀態(tài)變化后,自動(dòng)觸發(fā)向CBS中的待通知表(T_BUSI_NOTIFY)插入數(shù)據(jù),然后啟動(dòng)Quartz定時(shí)任務(wù),每5秒推送待通知表中數(shù)據(jù)給Mule并轉(zhuǎn)發(fā)給IQS,IQS成功接收后,將數(shù)據(jù)轉(zhuǎn)移至已通知表(T_BUSI_NOTIFIED)。

      Push-Pull混合模式優(yōu)化方案新契約主題“公共數(shù)據(jù)”設(shè)計(jì)如表1所示。

      對(duì)11個(gè)主題中的每個(gè)主題進(jìn)行10萬(wàn)數(shù)據(jù)壓力測(cè)試,總量達(dá)到百萬(wàn)。以數(shù)據(jù)量最大的新契約主題為例,測(cè)試結(jié)果如表2所示。

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

      5 結(jié) 論

      將此Push-Pull混合模式的性能優(yōu)化方案應(yīng)用于高并發(fā)數(shù)據(jù)共享系統(tǒng),公共“微數(shù)據(jù)”的推送基本滿足了多客戶端的一般性需求,其他個(gè)性化數(shù)據(jù)只需較少地調(diào)用服務(wù)接口即可滿足,減少了資源消耗,大大減輕了服務(wù)端和客戶端的壓力,取得了較好應(yīng)用效果。

      參考文獻(xiàn):

      [1] CSDN.消息系統(tǒng)該P(yáng)ush/Pull模式分析 [EB/OL].https://blog.csdn.net/pi9nc/article/details/27714745,2014-05-30.

      [2] 索傳軍.Push技術(shù)開(kāi)發(fā)應(yīng)用研究述評(píng) [J].現(xiàn)代圖書(shū)情報(bào)技術(shù),2003(3):48-50+63.

      作者簡(jiǎn)介:王子光(1984-),男,河南人,碩士。研究方向:軟件工程、軟件技術(shù)在企業(yè)應(yīng)用;王子明(1984-),男,河南人,工程師,碩士。研究方向:軟件工程、軟件開(kāi)發(fā)技術(shù)。

      猜你喜歡
      性能優(yōu)化
      大數(shù)據(jù)環(huán)境下高校選課系統(tǒng)性能優(yōu)化應(yīng)用研究
      數(shù)據(jù)挖掘算法性能優(yōu)化的研究與應(yīng)用
      SQL Server數(shù)據(jù)庫(kù)性能優(yōu)化的幾點(diǎn)分析
      Web應(yīng)用的前端性能優(yōu)化
      660MW超超臨界火電機(jī)組RB性能優(yōu)化
      WEB網(wǎng)站緩存性能優(yōu)化
      淺析Lustre的優(yōu)化設(shè)置
      Oracle數(shù)據(jù)庫(kù)性能調(diào)整與優(yōu)化分析
      科技視界(2016年1期)2016-03-30 14:27:50
      基于節(jié)點(diǎn)緩存的Web服務(wù)器性能優(yōu)化研究
      基于SQL數(shù)據(jù)庫(kù)的性能優(yōu)化的探討
      科技資訊(2015年7期)2015-07-02 18:48:14
      长岛县| 拉孜县| 聊城市| 璧山县| 华容县| 清苑县| 绥江县| 黄陵县| 长春市| 花莲市| 偃师市| 越西县| 磴口县| 兴安盟| 建瓯市| 侯马市| 运城市| 衡东县| 河津市| 东乌珠穆沁旗| 梓潼县| 临泽县| 女性| 丰城市| 犍为县| 昌黎县| 遂川县| 夏邑县| 洛宁县| 辰溪县| 平谷区| 三江| 金门县| 农安县| 万州区| 南华县| 乐业县| 特克斯县| 盱眙县| 万源市| 麟游县|