這篇文章給大家介紹怎樣開源Logi-KafkaManager,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
成都創(chuàng)新互聯(lián)公司是一家集成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站頁(yè)面設(shè)計(jì)、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)網(wǎng)站制作公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗(yàn),以探求精品塑造與理念升華,設(shè)計(jì)最適合用戶的網(wǎng)站頁(yè)面。 合作只是第一步,服務(wù)才是根本,我們始終堅(jiān)持講誠(chéng)信,負(fù)責(zé)任的原則,為您進(jìn)行細(xì)心、貼心、認(rèn)真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場(chǎng)環(huán)境中,互促共生。
github克隆比較慢gitee很快,采取前后端分離架構(gòu)(springboot+reactJS+Typescript),代碼包含了幾個(gè)模塊common,console,core,dao,extends,task,web,其中web中有MainApplication這個(gè)項(xiàng)目的啟動(dòng)類,其他都是依賴,console模塊是基于recat+typescript的前端界面(技術(shù)棧選型還是很超前的),本地分別對(duì)前后端運(yùn)行查看源碼,這里把console單獨(dú)放在VScode中運(yùn)行;
# react跟vue一樣基于node,所以npm相關(guān)依賴引入和配置啟動(dòng)
npm config set registry https://registry.npm.taobao.org
npm config list #查看npm當(dāng)前配置
npm install
# 啟動(dòng)react項(xiàng)目
npm start
console前端模塊啟動(dòng)運(yùn)行:
因?yàn)榍昂蠖朔謩e用idea和vscode,所以后端項(xiàng)目pom.xml需要注釋掉對(duì)于console前端模塊的引用:
依賴Maven 3.5+(后端打包),node v12+(前端打包),Java 8+(運(yùn)行環(huán)境需要),MySQL 5.7(數(shù)據(jù)存儲(chǔ)),node因?yàn)榉旁趘scode了所以不需要,在mysql創(chuàng)建kafka_manager庫(kù),并且運(yùn)行sql初始化語(yǔ)句,同時(shí)修改springboot中的mysql配置(這里官方提供的sql語(yǔ)句沒(méi)有加字符集設(shè)置,需要加上不然報(bào)錯(cuò))
mysql --default-character-set=utf8 -uroot -p123456 -P3306 -D kafka_manager < create_mysql_table.sql
將web模塊的MainApplication.java配置成應(yīng)用主類即可啟動(dòng);
2021-01-25 19:33:22.642 INFO 18000 --- [ main] c.x.kafka.manager.web.MainApplication : MainApplication started
由于是本地運(yùn)行,console模塊的API的proxy/target需要修改:
proxy: {
'/api/v1/': {
target: 'http://127.0.0.1:8080',
//target: 'http://10.179.37.199:8008',
// target: 'http://99.11.45.164:8888',
changeOrigin: true,
}
以上,本地獨(dú)立運(yùn)行了基于前后端分離的調(diào)試環(huán)境;可以看見前端讀取的是mysql庫(kù)中kafka集群配置;
按照官方提供的功能架構(gòu)圖理解,因?yàn)閘ogi-kafka-manager的定位是kafka集群全方位管控系統(tǒng),它以kafka集群為主體,封裝和集成了kafka對(duì)外提供的用戶API,,以kafka集群和topic資源為運(yùn)營(yíng)對(duì)象,面向應(yīng)用系統(tǒng)用戶(topic使用者)、kafka/管控平臺(tái)開發(fā)者、kafka/管控平臺(tái)運(yùn)維者提供便捷的資源管理能力。按照這個(gè)思維理解,官方給的功能架構(gòu)包括:資源層(zk和mysql元數(shù)據(jù)存儲(chǔ))、引擎層(kafka集群為主體)、網(wǎng)關(guān)層(kafka服務(wù)基礎(chǔ)管理能力)、服務(wù)層(高級(jí)用戶api)、平臺(tái)層(面向不同用戶);
這里在win系統(tǒng)下本地kafka+logi-kafka-manager的聯(lián)調(diào)測(cè)試驗(yàn)證,用于對(duì)于kafka+logi-kafka-manager的源碼研究和聯(lián)調(diào),關(guān)于win環(huán)境下如何部署zookeeper以及idea中運(yùn)行kafka集群可以參考之前系列文章:《kafka實(shí)踐(十二):生產(chǎn)者(KafkaProducer)源碼詳解和調(diào)試》,環(huán)境配置如下:
本地測(cè)試增加kafka集群到logi-kafka-manager內(nèi)進(jìn)行統(tǒng)一管理,新增的本地集群的zk地址和kafka地址,就可以統(tǒng)一管理broker和topic,以及后續(xù)的資源分配,win下實(shí)現(xiàn)環(huán)境配置方便源碼調(diào)整和kafka/管控平臺(tái)人員的調(diào)試;
linux環(huán)境下的生產(chǎn)部署使用則更為簡(jiǎn)單,zk和kafka部署完成后,按照官方文檔指引進(jìn)行前后端統(tǒng)一部署,不再驗(yàn)證;
# mvn會(huì)調(diào)用npm模塊下載node依賴
mvn install
# application.yml 是配置文件
cp kafka-manager-web/src/main/resources/application.yml kafka-manager-web/target/
cd kafka-manager-web/target/
nohup java -jar kafka-manager-web-2.1.0-SNAPSHOT.jar --spring.config.location=./application.yml > /dev/null 2>&1 &
針對(duì)應(yīng)用開發(fā)人員,只關(guān)心其當(dāng)前的應(yīng)用系統(tǒng)的數(shù)據(jù)(多為日志數(shù)據(jù))應(yīng)發(fā)到哪個(gè)集群下的哪個(gè)topic?,因此logi-kafka-manager提供了“Topic管理”--“集群管理”--“監(jiān)控告警”應(yīng)用菜單服務(wù),能提供以下幾種服務(wù):
創(chuàng)建/申請(qǐng)應(yīng)用
在“Topic管理”內(nèi)對(duì)當(dāng)前的申請(qǐng)應(yīng)用,匹配需要使用的topic資源(可調(diào)整配額和分區(qū))
kafka集群接入申請(qǐng)
在“監(jiān)控告警”內(nèi)自定義告警規(guī)則;(對(duì)消費(fèi)偏移量、消費(fèi)速率、集群狀態(tài)、topic狀態(tài)進(jìn)行自定義監(jiān)控,并實(shí)時(shí)預(yù)警,太有用了?。?/p>
資源申請(qǐng)服務(wù)
針對(duì)kafka/管控開發(fā)人員,需要進(jìn)行應(yīng)用系統(tǒng)、kafka集群、kafka管控平臺(tái)的綜合管理,增加“運(yùn)維管控”菜單,提供對(duì)于kafka集群的server.config配置等集群運(yùn)維能力和用戶計(jì)費(fèi)賬單管理能力,能提供以下幾種服務(wù):
針對(duì)kafka/管控運(yùn)維人員,需要及時(shí)發(fā)現(xiàn)解決kafka集群?jiǎn)栴}和快速修復(fù),提供“專家服務(wù)”,羅列常見問(wèn)題和解決方法,提供以下幾種服務(wù):
對(duì)于logi-kafka-manager工具,期待整合Mirror-maker跨機(jī)房數(shù)據(jù)傳輸工具,更方便地配置數(shù)據(jù)實(shí)時(shí)傳輸和效率監(jiān)控!
關(guān)于怎樣開源Logi-KafkaManager就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。