亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Kafka Eagle 源碼解讀

2019-11-06 06:04:13
字體:
來源:轉載
供稿:網友

http://www.cnblogs.com/smartloli/p/6490643.html

1.概述

  在《Kafka 消息監控 - Kafka Eagle》一文中,簡單的介紹了 Kafka Eagle這款監控工具的作用,截圖預覽,以及使用詳情。今天筆者通過其源碼來解讀實現細節。目前該項目已托管于 Github 之上,作者編寫了使用手冊,告知使用者如何安裝,部署,啟動該系統。但對于實現的細節并未在參考手冊中詳細指出。這里,筆者通過本篇博文,來詳細解讀其實現細節。相關資料文獻地址如下所示:

Kafka Eagle 源碼地址Kafka Eagle 參考手冊Kafka Eagle 安裝包

2.內容

  截止到版本 Kafka Eagle v1.1.1 支持監控0.8.2.x(存放消費信息于Zookeeper)以及 0.10.x(存放消費信息于Kafka的topic中)。對于前者,從Zookeeper中獲取消息信息,難度不大,編寫Zookeeper客戶端實現代碼即可,該版本在Zookeeper下的存儲結構樹如下圖所示:

對于實現細節,可使用ZkUtils工具類來獲取相關數據,以獲取消費信息為例,代碼如下所示:

復制代碼
/** Obtaining kafka consumer information from zookeeper. */    public Map<String, List<String>> getConsumers(String clusterAlias) {        ZkClient zkc = zkPool.getZkClient(clusterAlias);        Map<String, List<String>> consumers = new HashMap<String, List<String>>();        try {            Seq<String> subConsumerPaths = ZkUtils.getChildren(zkc, CONSUMERS_PATH);            List<String> groups = javaConversions.seqAsJavaList(subConsumerPaths);            for (String group : groups) {                String path = CONSUMERS_PATH + "/" + group + "/owners";                if (ZkUtils.pathExists(zkc, path)) {                    Seq<String> owners = ZkUtils.getChildren(zkc, path);                    List<String> ownersserialize = JavaConversions.seqAsJavaList(owners);                    consumers.put(group, ownersSerialize);                } else {                    LOG.error("Consumer Path[" + path + "] is not exist.");                }            }        } catch (Exception ex) {            LOG.error(ex.getMessage());        } finally {            if (zkc != null) {                zkPool.release(clusterAlias, zkc);                zkc = null;            }        }        return consumers;    }復制代碼

其他監控信息可以按照Zookeeper中結構樹路徑獲取。如下圖所示:

然而,對于新版本,官方默認將消費信息遷移到Kafka的topic中,這樣原來的接口只能獲取topic,broker等信息,對于消費的信息,我們需要從kafka中一個叫__consumer_offsets的topic中獲取。為了兼容0.8.2.x版本的Kafka,這里在Kafka Eagle中另外啟動一個RpcServer來貢獻__consumer_offsets中的消費信息。消費__consumer_offsets這個topic時,需要指定該內部topic不暴露給consumer,將 exclude.internal.topics 設置為 false 即可。這樣我們通過一個 kafka.eagle.offset.storage 開關來控制系統獲取監控元數據的走向。獲取流程如下圖所示:

3.消費 Owner

  當消費的信息存放于Zookeeper中,我們可以直接從consumer模塊下直接獲取對應的Owner,但是在Kafka的Topic中,我們需要編碼來間接的獲取。這里,我們需要知道 Kafka 的Owner的組成規則,其規則由 Group+ConusmerHostAddress+Timespan+UUID+PartitionId組成,實現細節可參考源碼,界面展示如下圖所示:

4.Kafka SQL

  關于Kafka SQL,旨在使用SQL來快速可視化Topic的相關信息,目前 Kafka SQL 實現的功能包含有展示某一個Topic的Partition,Offset,以及其對應的消息記錄,若不加limit條件限制,默認展示該Topic下最新的5000條記錄,詳細實現細節,可參看源碼,預覽截圖如下所示:

查詢結果,如下圖所示:

5.多集群

  Kafka Eagle 目前是支持多集群監控,所謂多集群,是指多個Zookeeper集群下的Kafka集群,通過切換session來管理不同的Zookeeper集群下的Kafka集群,細節參看源碼。管理界面如下圖所示:

6.總結

  Kafka Eagle總體實現思路基本如上所述。針對,Kafka 0.10.x版本,Kafka Eagle監控部分模塊不展示的問題,這里在啟動 Kafka Eagle之前,默認啟動一個系統consumer來消費kafka.eagle該group下的__system.topic__,保證__consumer_offsets是有數據可供獲取的。

7.結束語

  這篇博客就和大家分享到這里,如果大家在研究學習的過程當中有什么問題,可以加群進行討論或發送郵件給我,我會盡我所能為您解答,與君共勉!

聯系方式: 郵箱:smartloli.org@Gmail.com Twitter:https://twitter.com/smartloli QQ群(Hadoop - 交流社區1):424769183 溫馨提示:請大家加群的時候寫上加群理由(姓名+公司/學校),方便管理員審核,謝謝! 

熱愛生活,享受編程,與君共勉!

作者:哥不是小蘿莉 [關于我][犒賞]

出處:http://www.cnblogs.com/smartloli/

轉載請注明出處,謝謝合作!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕最新精品| 国产视频久久久久| 亚洲人成电影网站色…| 日韩成人av网| 黑丝美女久久久| 日韩欧美视频一区二区三区| 亚洲美女av黄| 久久综合伊人77777| 精品成人在线视频| 欧美不卡视频一区发布| 欧美性高跟鞋xxxxhd| 国产在线观看91精品一区| 日韩一区二区福利| 亚洲欧美在线第一页| 国产成人久久久精品一区| 2019精品视频| 成人黄色在线免费| 国产美女精品视频| 国产午夜精品免费一区二区三区| 国产精品露脸自拍| 久久久久亚洲精品成人网小说| 日韩在线免费观看视频| 精品国产成人在线| 欧美丝袜一区二区| 亚洲一区二区三区在线视频| yellow中文字幕久久| xvideos成人免费中文版| 国产精品情侣自拍| 精品久久久久久久久久久久久| 亚洲国产日韩精品在线| 久久久亚洲成人| 性金发美女69hd大尺寸| 国产欧美va欧美va香蕉在| 精品亚洲一区二区三区在线观看| 中文字幕九色91在线| 丝袜亚洲欧美日韩综合| 中文字幕视频在线免费欧美日韩综合在线看| 欧美日韩在线免费| 成人精品福利视频| 国产日韩欧美在线视频观看| 精品无人区乱码1区2区3区在线| 欧美性xxxx极品高清hd直播| 狠狠色狠色综合曰曰| 伊人久久久久久久久久久| 日韩在线观看精品| 色99之美女主播在线视频| 亚洲跨种族黑人xxx| 久久综合久久八八| 国模叶桐国产精品一区| 国产精品第一视频| 欧美午夜电影在线| 中文字幕日韩专区| 成人在线精品视频| 青青草99啪国产免费| 美女福利精品视频| 亚洲国产婷婷香蕉久久久久久| 日韩av在线免费观看| 在线观看日韩视频| 亚洲男人第一网站| 亚洲天堂成人在线视频| 久久久亚洲影院你懂的| 欧美午夜性色大片在线观看| 成人性教育视频在线观看| 午夜精品久久久久久99热软件| 亚洲第一网中文字幕| 欧美日韩亚洲视频| 国内揄拍国内精品少妇国语| 国产亚洲一级高清| 国产精品极品美女在线观看免费| 久久99热这里只有精品国产| 一本色道久久88亚洲综合88| 日韩欧亚中文在线| 亚洲最大福利视频网站| 秋霞成人午夜鲁丝一区二区三区| 日本欧美精品在线| 91黄色8090| 91色在线观看| 久久九九有精品国产23| 在线日韩精品视频| 亚洲qvod图片区电影| 57pao国产成人免费| 色噜噜狠狠狠综合曰曰曰88av| 国产日韩综合一区二区性色av| 欧美激情亚洲综合一区| 91精品国产高清自在线| 国产精品入口日韩视频大尺度| 97在线精品视频| 精品久久久中文| 国产精品亚洲激情| 中日韩午夜理伦电影免费| 精品国产网站地址| 欧美不卡视频一区发布| 97超级碰碰人国产在线观看| 日韩av免费在线播放| 久久人人爽人人爽人人片亚洲| 永久免费毛片在线播放不卡| 欧美午夜片在线免费观看| 亚洲国产精品久久久久秋霞蜜臀| 成人免费观看49www在线观看| 66m—66摸成人免费视频| 欧美性xxxx在线播放| 欧美理论电影在线观看| 久久久国产一区| 91地址最新发布| 亚洲第一区中文字幕| 亚洲缚视频在线观看| 国产精品久久久久免费a∨大胸| 亚洲成人中文字幕| 国产不卡一区二区在线播放| 97视频色精品| 日韩在线一区二区三区免费视频| 一区国产精品视频| 国产精品高潮呻吟久久av野狼| 中文字幕精品影院| www.日韩欧美| 成人精品一区二区三区| 欧美成人免费全部观看天天性色| 三级精品视频久久久久| 国产欧美 在线欧美| 91av在线国产| 亚洲二区在线播放视频| 日本不卡高字幕在线2019| 亚洲男子天堂网| 黑人巨大精品欧美一区二区一视频| 久久免费少妇高潮久久精品99| 亚洲欧美国产高清va在线播| 正在播放国产一区| 欧美国产第一页| 国外成人在线播放| 久久夜色精品国产| 国产精品久久久av久久久| 久久免费视频在线观看| 欧美又大又粗又长| 国产欧美精品一区二区三区介绍| 91成人在线视频| 欧美视频精品一区| 国产美女精品视频免费观看| 欧美精品电影免费在线观看| 欧美限制级电影在线观看| 亚洲精选在线观看| 亚洲欧美在线看| 欧美日韩成人在线观看| 欧美性猛交xxxx乱大交极品| 久久久91精品国产一区不卡| 一区二区在线视频播放| 日韩av在线免费观看| 日韩精品视频在线免费观看| 欧洲成人午夜免费大片| 亚洲欧美中文另类| 亚洲国产福利在线| 久久成人人人人精品欧| 日韩高清人体午夜| 亚洲成人精品久久久| 国产裸体写真av一区二区| 91精品国产自产91精品| 日韩精品在线免费观看| 国产美女直播视频一区| 日韩电影在线观看中文字幕| www.亚洲人.com| 欧美网站在线观看| 91av视频在线免费观看| 亚洲国产精品人人爽夜夜爽| 国产精品青草久久久久福利99| 亚洲国产古装精品网站|