SpringBoot獲取Kafka的Topic列表

2021-10-23 23:23:14 字數 3163 閱讀 1805

眾所周知,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 不會識別轉譯字元,原樣...