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

基于海量數據消息隊列的性能比較及其優化

2018-02-09 20:30:05邰宇
科技傳播 2018年3期

邰宇

摘 要 互聯網的快速發展促進了海量數據的產生,而實時處理海量數據離不開具有良好性能的分布式消息隊列,可明顯提高數據處理的效率,海量數據采用何種消息隊列進行傳輸是關鍵問題之一。分析研究應用最頻繁的Apache Kafka、Rocket-MQ及Rabbit-MQ三種消息隊列特點及實現原理,在實時大數據計算場景下基于此對消息隊列分別搭建集群測試環境,比較有關結果后實現對消息隊列的性能設計優化。

關鍵詞 海量數據;消息隊列;大數據時代

中圖分類號 G2 文獻標識碼 A 文章編號 1674-6708(2018)204-0106-02

1 概述

隨著互聯網技術的迅速發展,網絡日志在主流網站及應用中每日產生的都是海量級的,其數據價值與其產生時間之間存在負相關關系。基于此研發的實時流計算系統,使這些數據體現出最大的價值。將數據向計算系統傳輸已成為對計算效率產生影響的一個主要瓶頸,結合特定業務場景科學合理地選擇分布式消息隊列更為適宜,可在一定程度上使實時計算效率明顯提高。對不同分布式消息隊列在實時計算場景下實時性、并發性、可靠性及擴展能力等方面表現出的差異比較,以確定最優性能的消息隊列。

2 消息隊列

2.1 Kafka及其基本架構

Kafka是可實現、發布及訂閱功能的分布式消息隊列系統,生產者生產消息并將指定話題的消息向消息集群中發布,消費者會對消息集群中的指定話題消息主動訂閱,中間對持久化消息的存儲稱為Broker。消息偏移量在消費者中存儲,因Kafka消息隊列無狀態,用于對Kafka中當前消費者的消費狀況進行記錄。

若某個節點在集群中宕機,系統還能提供正常服務,但容易丟失存儲在宕機節點上的信息。無狀態的Kafka需消費者定期維護消息隊列集群中消費的偏移量,詳細記錄之前的消費狀態。消息偏移量是不連續增量,在對下一個消息位置計算時,應將當前消息長度以原來偏移量為基礎進行相加計算。

2.2 Rocket-MQ及其基本架構

Rocket-MQ主要是由服務器端的NameServer、Broker和客戶端的Producer、Consumer四種節點組成,其Broker、Producer、Consumer與Kafka具有基本相同的功能。NameServer主要用于提供給Producer和Consumer生產消費的Broker地址,Rocket-MQ集群隨著啟動的Broker集群,發起連接指定NameServer的請求,Broker將以30s為周期會自動發送具有目的topic消息的一次心跳,同時NameServer每隔兩分鐘對是否存在心跳進行主動檢測,若未檢測到心跳,將自動斷開連接。若Broker掛掉,也將斷開連接,NameServer迅速感知到并將topic和broker的關系更新。但不會向客戶端主動通知,在客戶端啟動時,對部分NameServer指定具體的網址,客戶端自動與指定NameServer進行連接,若不能成功連接,客戶端就會嘗試連接其他NameServer地址,連接成功將每隔30s對路由信息進行查詢。

2.3 Rabbit-MQ及其基本架構

由Exchanges與Queues組成的Broker是Rabbit-MQ與其他2種消息隊列的主要區別,向Exchanges中push生產者生產的消息,系統利用RoutingKey將找到消息與Queue的對應存儲位置。Queue利用routing keys進行綁定,在消息傳輸中,若消費者對客戶端的發送消息正確接收并消費,系統將這條消息從Queue中刪除。多個消費者可接收發送來的同一消息,及時將數據向消費者發送后同時在隊列中將這條數據刪除。

3 實驗設計

采用本地虛擬機PC搭建測試環境,對測試主機進行網絡配置。對實驗系統進行設計,其主要過程為生產者向Broker集群中Push數據,然后對消費者Pull到Broker集群中的數據進行計算。由程序自動生成實驗數據,再向Broker集群中存儲。預先搭建好Storm實時計算系統,3種消息隊列分別與生產者和消費者建立連接,再對消息分別統計分析其生產和消費效率。

4 性能優化設計及實驗結果

4.1 創新性

為使數據計算提高準確性,采用全新Kafka消息結構,放棄消費者利用對offset的維護消費Kafka集群中的數據。消費者對數據接口的讀取和消費者對數據偏移量接口的修改分別進行重新設計,同時由消費者調用讀取數據接口和修改偏移量接口,以確保其消費端具有較高的可靠性。

4.2 消費者可靠性設計

丟失傳送消息和重新傳送消費過的消息是讀取Kafka原生的消費者端數據中比較常見的2個問題,因此,基于此采取可靠性設計方案。將主鍵Id分別添加到生產者中的每條消息中,在消費者中若檢測出重復Id則進行自動過濾,以確保不會重新消費已被消費的消息。確保不丟失傳送數據的方法主要是采取消費者同步處理數據和對數據偏移量修改,即消費者將一條數據處理完后再依次將另一條數據依次進行處理。

4.3 測試主要用例

測試主要是實現對以上3種消息隊列的磁盤 IO、吞吐量及CPU資源消耗率之間存在差距的比較。正常啟動Zookeeper和3個消息隊列,測試是將消息隊列集群與Storm計算集群啟動,push消息隊列中100萬條準備好的測試數據,對topic分別創建,計算Storm計算集群pull出消息隊列中的數據。

4.4 實驗結果

通過比較分析以實時流處理場景為基礎的吞吐量,Kafka最高,Rabbit-MQ的broker磁盤IO處于瓶頸。Rocket-MQ比較穩定,磁盤IO使用率已接近全部。Rabbit-MQ在消耗CPU資源方面較大。再對服務端處理同步發送的有關消息隊列的性能進行比較,Kafka消息隊列最高,Rabbit-MQ消息隊列最低。

5 結論

綜上所述,基于實時流處理業務場景對存儲和讀取需處理數據的消息隊列進行選擇十分必要。通過對Kafka消息結構的優化,再比較基于Storm集群實時計算場景中性能較好的3種消息隊列,研究結果顯示以極大的實時計算數據量和較低延遲的要求為基礎,綜合評價這3種消息隊列的吞吐量、磁盤IO及消耗CPU標準等有關指標,Kafka消息隊列的優勢比較明顯。

參考文獻

[1]王巖,王純.一種基于Kafka的可靠的Consumer的設計方案[J].軟件,2016(17):61-66.

[2]馬浩然.基于NS3的分布式消息系統Kafka的仿真實現[J].軟件,2015(1):94-99.

[3]張鵬,李鵬霄,任彥,等.面向大數據的分布式流處理技術綜述[J].計算機研究與發展,2014(s2):1-9.

[4]周京暉.集成消息服務和定時通知的分布式內存數據庫[J].軟件,2013,34(1):82-92.

[5]譚玉靖.基于ZooKeeper的分布式處理框架的研究與實現[D].北京:北京郵電大學,2014.endprint

主站蜘蛛池模板: 五月综合色婷婷| 日韩欧美中文在线| 精品国产亚洲人成在线| 久久伊人操| 欧美日韩在线国产| 欧美成人午夜影院| 91无码网站| 中文字幕久久波多野结衣| 欧美日韩成人在线观看| 欧美日韩国产一级| 国产成人综合日韩精品无码首页| 91精品啪在线观看国产91九色| 欧美日韩亚洲综合在线观看| 日本免费a视频| 亚洲天堂首页| 5555国产在线观看| 成年人福利视频| 思思热精品在线8| jizz在线观看| 91丝袜在线观看| 美女内射视频WWW网站午夜| 亚洲αv毛片| 91最新精品视频发布页| 波多野吉衣一区二区三区av| 欧美综合在线观看| 午夜一区二区三区| 欧美福利在线| 中美日韩在线网免费毛片视频| 99视频免费观看| 午夜精品久久久久久久99热下载| 欧美一区精品| 日韩中文字幕亚洲无线码| 亚洲天堂网2014| 青青久在线视频免费观看| 国产激爽爽爽大片在线观看| 人人爱天天做夜夜爽| 国产门事件在线| 青草免费在线观看| 91午夜福利在线观看| 国产一级毛片yw| 在线人成精品免费视频| 九九九久久国产精品| 全色黄大色大片免费久久老太| 青青草综合网| 99久久国产综合精品2020| 性69交片免费看| 欧美a在线看| 欧美日韩午夜视频在线观看| 中文字幕1区2区| 99久久无色码中文字幕| 中文字幕亚洲专区第19页| 国产杨幂丝袜av在线播放| 亚洲区视频在线观看| 五月婷婷亚洲综合| 国产美女无遮挡免费视频网站| 国产丝袜精品| 在线精品自拍| 久久性视频| 欧美色综合网站| 欧美精品黑人粗大| 色婷婷亚洲综合五月| 精品色综合| 少妇精品久久久一区二区三区| 91麻豆精品视频| 国产精品一区二区不卡的视频| 日韩欧美国产另类| 这里只有精品在线播放| 久久天天躁夜夜躁狠狠| 精品久久香蕉国产线看观看gif| 亚洲黄色片免费看| 亚洲无码精品在线播放| 精品久久人人爽人人玩人人妻| 精品久久久久久中文字幕女| 日韩在线永久免费播放| 色综合久久无码网| 又爽又大又黄a级毛片在线视频| 亚洲精品中文字幕午夜 | 亚洲熟妇AV日韩熟妇在线| 在线观看免费国产| 国产中文一区a级毛片视频| 青青草原国产| 久草青青在线视频|