一種優(yōu)化的Kafka消費者/客戶端負載均衡算法
發(fā)布時間:2021-07-18 13:17
Kafka是一款高吞吐的分布式消息系統(tǒng),在海量數(shù)據(jù)處理等多個領域被廣泛使用。但現(xiàn)有Kafka消費者/客戶端負載均衡算法存在一些不足,在處理海量數(shù)據(jù)時易產(chǎn)生過高開銷甚至出錯等問題。提出了一種優(yōu)化的Kafka消費者/客戶端負載均衡算法,負載均衡過程完全由作為管理者的消費者控制,其余消費者不必單獨進行負載均衡,而且管理者不用重新分配每個消費者消費的分區(qū)。系統(tǒng)對所有消費者的運行狀況進行監(jiān)控,出現(xiàn)宕機的消費者后可及時進行負載再均衡。測試結果說明該算法能夠減少Kafka消費者/客戶端在負載均衡過程中的系統(tǒng)開銷,并避免出現(xiàn)錯誤的負載均衡結果,可以有效地保障分布科學數(shù)據(jù)處理的正確性。
【文章來源】:計算機應用研究. 2017,34(08)北大核心CSCD
【文章頁數(shù)】:4 頁
【部分圖文】:
消費自刀一陰費}C-硝價}O便偉目前算法時消費者cpu使用率的空化
均衡結果,說明Kafka消費者/客戶端在使用本文算法進行負載均衡時,能夠有效地避免出現(xiàn)錯誤的負載均衡結果,使客戶端一直維持正確的工作狀態(tài),提高系統(tǒng)的可靠性。圖5和6分別記錄了Kafka消費者/客戶端使用不同的算法在30s內(nèi)的測試數(shù)據(jù),測試中記錄四臺虛擬機CPU使用率的變化。圖5為使用目前算法的數(shù)據(jù),圖6為使用本文算法的數(shù)據(jù)。在這30s內(nèi),消費者A、B和C一直在運行,而消費者D則是在第10s時啟動,并在第20s時再次關閉。如圖5所示,Kafka消費者/客戶端在使用目前算法時,消費者D的啟動和關閉都會使其他三臺虛擬機的CPU使用率迅速上升到一個峰值,說明使用目前算法時,只要有消費者加入或退出,都會使所有消費者單獨進行負載均衡,增加了系統(tǒng)開銷。如圖6所示,Kafka消費者/客戶端在使用本文算法時,消費者D的啟動不會引起其他三臺虛擬機的CPU使用率的迅速上升;消費者D關閉時,短時間內(nèi)消費者A和B的CPU使用率仍無劇烈變化,只有消費者C的CPU使用率迅速上升到一個峰值。這是因為當消費者D啟動時,負載均衡的管理者是消費者D,由它負責控制整個消費者/客戶端的負載均衡并通知其他消費者負載均衡處理結果,其余三個消費者不需要自己單獨進行負載均衡,只需要根據(jù)消費者D通知的處理結果調(diào)整各自負責消費的分區(qū)數(shù)量。而當消費者D關閉時,消費者C變?yōu)樨撦d均衡的新的管理者,需要控制整個負載均衡過程,消費者A和B則只需要根據(jù)消費者C通知的處理結果作出相應調(diào)整即可。由測試結果可知,Kafka消費者/客戶端在使用本文算法時,負載均衡只由作為管理者的消費者發(fā)起并控制,其余消費者不必單獨進行負載均衡,這樣既可以減少客戶端在負載均衡過程中的系統(tǒng)開銷,又可以避免出現(xiàn)錯誤的負載均衡結果,能夠更加高效正確地完成客戶端的負載均衡。5結
【參考文獻】:
期刊論文
[1]一種基于Kafka的可靠的Consumer的設計方案[J]. 王巖,王純. 軟件. 2016(01)
[2]基于Flume、Kafka、Storm、HDFS的航空維修大數(shù)據(jù)系統(tǒng)[J]. 徐海榮,陳閔葉,張興媛. 上海工程技術大學學報. 2015(04)
[3]基于Docker的Redis緩存架構的研究[J]. 田玉靖,張晨光,任女爾. 電腦知識與技術. 2015(23)
[4]Redis在訂閱推送系統(tǒng)中的應用[J]. 吳霖,劉振宇,李佳. 電腦知識與技術. 2015(07)
[5]基于內(nèi)存數(shù)據(jù)庫Redis的輕量級矢量地理數(shù)據(jù)組織[J]. 朱進,胡斌,邵華,羅青,江南,張景云. 地球信息科學學報. 2014(02)
[6]基于rabbitmq的海量日志的分布式處理[J]. 袁佳,郭燕慧. 軟件. 2013(07)
[7]利用Zookeeper對HDFS中Namenode單點失敗的改進方法[J]. 魯陽,鄭巖. 軟件. 2012(12)
碩士論文
[1]基于大數(shù)據(jù)的網(wǎng)絡廣告推送服務研究[D]. 陳順風.北京交通大學 2015
[2]基于redis的券商活動平臺的設計與實現(xiàn)[D]. 田京昆.哈爾濱工業(yè)大學 2015
[3]基于Redis的分布式消息服務的設計與實現(xiàn)[D]. 曾泉勻.北京郵電大學 2014
本文編號:3289649
【文章來源】:計算機應用研究. 2017,34(08)北大核心CSCD
【文章頁數(shù)】:4 頁
【部分圖文】:
消費自刀一陰費}C-硝價}O便偉目前算法時消費者cpu使用率的空化
均衡結果,說明Kafka消費者/客戶端在使用本文算法進行負載均衡時,能夠有效地避免出現(xiàn)錯誤的負載均衡結果,使客戶端一直維持正確的工作狀態(tài),提高系統(tǒng)的可靠性。圖5和6分別記錄了Kafka消費者/客戶端使用不同的算法在30s內(nèi)的測試數(shù)據(jù),測試中記錄四臺虛擬機CPU使用率的變化。圖5為使用目前算法的數(shù)據(jù),圖6為使用本文算法的數(shù)據(jù)。在這30s內(nèi),消費者A、B和C一直在運行,而消費者D則是在第10s時啟動,并在第20s時再次關閉。如圖5所示,Kafka消費者/客戶端在使用目前算法時,消費者D的啟動和關閉都會使其他三臺虛擬機的CPU使用率迅速上升到一個峰值,說明使用目前算法時,只要有消費者加入或退出,都會使所有消費者單獨進行負載均衡,增加了系統(tǒng)開銷。如圖6所示,Kafka消費者/客戶端在使用本文算法時,消費者D的啟動不會引起其他三臺虛擬機的CPU使用率的迅速上升;消費者D關閉時,短時間內(nèi)消費者A和B的CPU使用率仍無劇烈變化,只有消費者C的CPU使用率迅速上升到一個峰值。這是因為當消費者D啟動時,負載均衡的管理者是消費者D,由它負責控制整個消費者/客戶端的負載均衡并通知其他消費者負載均衡處理結果,其余三個消費者不需要自己單獨進行負載均衡,只需要根據(jù)消費者D通知的處理結果調(diào)整各自負責消費的分區(qū)數(shù)量。而當消費者D關閉時,消費者C變?yōu)樨撦d均衡的新的管理者,需要控制整個負載均衡過程,消費者A和B則只需要根據(jù)消費者C通知的處理結果作出相應調(diào)整即可。由測試結果可知,Kafka消費者/客戶端在使用本文算法時,負載均衡只由作為管理者的消費者發(fā)起并控制,其余消費者不必單獨進行負載均衡,這樣既可以減少客戶端在負載均衡過程中的系統(tǒng)開銷,又可以避免出現(xiàn)錯誤的負載均衡結果,能夠更加高效正確地完成客戶端的負載均衡。5結
【參考文獻】:
期刊論文
[1]一種基于Kafka的可靠的Consumer的設計方案[J]. 王巖,王純. 軟件. 2016(01)
[2]基于Flume、Kafka、Storm、HDFS的航空維修大數(shù)據(jù)系統(tǒng)[J]. 徐海榮,陳閔葉,張興媛. 上海工程技術大學學報. 2015(04)
[3]基于Docker的Redis緩存架構的研究[J]. 田玉靖,張晨光,任女爾. 電腦知識與技術. 2015(23)
[4]Redis在訂閱推送系統(tǒng)中的應用[J]. 吳霖,劉振宇,李佳. 電腦知識與技術. 2015(07)
[5]基于內(nèi)存數(shù)據(jù)庫Redis的輕量級矢量地理數(shù)據(jù)組織[J]. 朱進,胡斌,邵華,羅青,江南,張景云. 地球信息科學學報. 2014(02)
[6]基于rabbitmq的海量日志的分布式處理[J]. 袁佳,郭燕慧. 軟件. 2013(07)
[7]利用Zookeeper對HDFS中Namenode單點失敗的改進方法[J]. 魯陽,鄭巖. 軟件. 2012(12)
碩士論文
[1]基于大數(shù)據(jù)的網(wǎng)絡廣告推送服務研究[D]. 陳順風.北京交通大學 2015
[2]基于redis的券商活動平臺的設計與實現(xiàn)[D]. 田京昆.哈爾濱工業(yè)大學 2015
[3]基于Redis的分布式消息服務的設計與實現(xiàn)[D]. 曾泉勻.北京郵電大學 2014
本文編號:3289649
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3289649.html
最近更新
教材專著