眾所周知,kafka是現代流行的訊息佇列,它使用經典的訊息訂閱發布模式實現訊息的流轉,大部分**結合kafka使用都是使用它的生產者和消費者來實現訊息的傳遞,那麼對於kafka的主題的管理怎麼使用**實現呢,這是今天要講的主題
kafka要結合zookeeper使用,因為它把元資料資訊交給了zookeeper管理,其實使用命令列命令很容易就能對topic進行管理,主要使用的命令是kafka-topics.sh
建立主題
kafka-topics.sh --zookeeper localhost:2181 --create --topic my-topic --replication-factor 3 --partitions 3
檢視主題列表
kafka-topics.sh --zookeeper localhost:2181 --list
檢視主題狀態
kafka-topics.sh --describe --zookeeper 127.0.0.1:2181 --topic testtopic
那麼話說回來如何使用**實現topic的管理呢,那麼現在就來看一下**的實現方式,此處使用springboot2框架實現。
首先引進依賴kafka的相關
>
>
org.springframework.kafkagroupid
>
>
spring-kafkaartifactid
>
dependency
>
建立乙個測試類進行測試
public
static
void
main
(string[
] args));
}catch
(interruptedexception
| executionexception e)
adminclient.
close()
;}
這裡面最主要的就是adminclient這個類,adminclient實現了admin介面,admin裡面定義了許多和kafka配置相關的東西
讓我們依次來看一下
public
abstract
class
adminclient
implements
admin
public
static adminclient create
(properties props)
public
static adminclient create
(map
conf)
}
而admin介面裡有以下方法
static admin create
(properties props)
static admin create
(map
conf)
default
void
close()
/** @deprecated */
@deprecated
default
void
close
(long duration, timeunit unit)
void
close
(duration var1)
;default createtopicsresult createtopics
(collection
newtopics)
createtopicsresult createtopics
(collection
var1, createtopicsoptions var2)
;default deletetopicsresult deletetopics
(collection
topics)
deletetopicsresult deletetopics
(collection
var1, deletetopicsoptions var2)
;default listtopicsresult listtopics()
listtopicsresult listtopics
(listtopicsoptions var1)
;default describetopicsresult describetopics
(collection
topicnames)
describetopicsresult describetopics
(collection
var1, describetopicsoptions var2)
;default describeclusterresult describecluster()
describeclusterresult describecluster
(describeclusteroptions var1)
;default describeaclsresult describeacls
(aclbindingfilter filter)
describeaclsresult describeacls
(aclbindingfilter var1, describeaclsoptions var2)
;
通過名稱我們可以看出,裡面有建立topic,有刪除topic,有列出所有topic,有描述topic
我們通過這些方法可以管理kafka的topic
最後我們來看一下實現效果
控制台列印裡面有3個topic
去伺服器命令列驗證一下
也是3個說明**沒問題
網上大多數關於kafka的**實現都是關於生產者和消費者的實現,今天主要是使用一下kakfa的配置管理類,實現對topic的管理,以此記錄作為以後工作中的參考。
SpringBoot獲取properties配置
前言 在專案中,很多時候需要把配置寫在properties裡,部署的時候也需要切換不同的環境來選擇正確的配置的引數,也有時候需要將mq redis等第三方配置新建乙個properties檔案在專案中引用。1.因為是spring的環境,當然首先需要搭建好spring環境。package com.exa...
SpringBoot獲取properties配置
擼了今年阿里 網易和美團的面試,我有乙個重要發現.前言 在專案中,很多時候需要把配置寫在properties裡,部署的時候也需要切換不同的環境來選擇正確的配置的引數,也有時候需要將mq redis等第三方配置新建乙個properties檔案在專案中引用。1.因為是spring的環境,當然首先需要搭建...
SpringBoot獲取資料
配置檔案中資料 name abc 物件persion name lele age 29 物件行內寫法 persion2 陣列address beijing shanghai 陣列行內寫法 address2 beijing,shanghai msg1 hello n world 不會識別轉譯字元,原樣...