Kafka中不自動消費的問題解決方案
查看原始碼
如果專案中有多個不同的topic需要消費,那么一定要注意@KafkaListener中id的配置,原始碼中如下
/**
* The unique identifier of the container managing for this endpoint.(管理此端點的容器的唯一識別符號 )
* <p>If none is specified an auto-generated one is provided.
* @return the {@code id} for the container managing for this endpoint.
* @see org.springframework.kafka.config.KafkaListenerEndpointRegistry#getListenerContainer(String)
*/
String id() default "";
上邊原始碼中提到了,id是容器的唯一識別符號,
我自己遇到的問題
我之前的專案中就是因為有好幾個不同的topic,不同的方法對應的注解@KafkaListener里邊我直接寫的(topics = { }, containerFactory = “kafkaListenerContainerFactory”),這兩個引數,然后上邊topic中放不同的名稱就行,之前一點問題都沒有,就在前兩天的時候,突然kafka不自動實時消費了,找了好久的問題,服務器上三個集群kafka和zookeeper都啟動了,集群狀態也查看了,kafka在linux命令試了一下生產和消費訊息也沒問題(基本命令操作,請看最后邊),后來準備使用KafkaListenerEndpointRegistry這個類,可以手動控制啟動和停止監聽,這個類中需要配置id(不知道這個類的,可以參考這個 Little Coder),寫好之后,啟動專案,正準備發送啟動請求,結果一看已經在自動消費了,后來我就給每個方法的注解@KafkaListener配置上了不同的id引數@KafkaListener(topics = { }, containerFactory = “kafkaListenerContainerFactory”, id = “”),OK!至此監聽自動不消費的問題解決了,
linux操作kafka基本命令
#注:執行這些命令之前,必須是在kafka目錄下的bin檔案夾中
# 查看集群狀態
./kafka-topics.sh --describe --zookeeper
# 查看Topic
./kafka-topics.sh --list --zookeeper 10.0.5.245:2181,10.0.5.157:2181,10.0.5.158:2181
# 創建主題
./kafka-topics.sh --create --zookeeper 10.0.5.245:2181,10.0.5.157:2181,10.0.5.158:2181 --topic test --partitions 3 --replication-factor 1
# 向主題生產訊息 CTRL+D結束寫入內容
./kafka-console-producer.sh --broker-list 10.0.5.245:9092,10.0.5.157:9092,10.0.5.158:9092 --topic test
# 消費訊息
./kafka-console-consumer.sh --bootstrap-server 10.0.5.157:9092 --topic test --from-beginning
自己作業中遇到的問題做的總結,希望對大家有幫助,最后愿作業中忙碌的你找機會抽空放松一下自己,不要累倒身體,加油把努力的人類們!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/293911.html
標籤:其他
上一篇:Java專案:網上圖書商城系統(java+SSM+Jsp+MySQL+Redis+JWT+Shiro+RabbitMQ+Vue+EasyUI)
