欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot如何開啟和關(guān)閉kafka消費(fèi)

 更新時(shí)間:2024年12月16日 09:44:17   作者:阿拉的夢(mèng)想  
在Kafka消費(fèi)者中,通過(guò)關(guān)閉自動(dòng)消費(fèi)配置,使用自定義容器工廠,并在消費(fèi)監(jiān)聽器上設(shè)置id,可以手動(dòng)控制消費(fèi)的開啟和關(guān)閉,這是根據(jù)個(gè)人經(jīng)驗(yàn)總結(jié)的方法,旨在幫助其他開發(fā)者

springboot開啟和關(guān)閉kafka消費(fèi)

關(guān)閉kafka自動(dòng)消費(fèi)

配置自定義容器工廠

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory;
import org.springframework.kafka.core.ConsumerFactory;
import org.springframework.stereotype.Component;

@Component
@Configuration
public class kafkaConfig {

    @Autowired
    private ConsumerFactory<String, String> consumerFactory;

    @Bean("pingKafkaFactory")
    public ConcurrentKafkaListenerContainerFactory<String, String> delayContainerFactory() {
        ConcurrentKafkaListenerContainerFactory<String, String> container = new ConcurrentKafkaListenerContainerFactory<String, String>();
        container.setConsumerFactory(consumerFactory);
        //禁止自動(dòng)啟動(dòng)
        container.setAutoStartup(false);
        return container;
    }
}

在消費(fèi)監(jiān)聽器上使用工廠,并設(shè)置id

@KafkaListener(topics = "#{pingProperties.getTopic().split(',')}",id = "pingConsumer",containerFactory = "pingKafkaFactory")

這樣,啟動(dòng)項(xiàng)目后,就不會(huì)自動(dòng)消費(fèi)了。

手動(dòng)開啟和關(guān)閉消費(fèi)

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.config.KafkaListenerEndpointRegistry;
import org.springframework.stereotype.Service;

/**
 * Kafka消費(fèi)監(jiān)聽服務(wù)實(shí)現(xiàn)類.
 */
@Service
@Slf4j
public class KafkaConsumerListenerServiceImpl implements KafkaConsumerListenerService {


    /**
     * registry.
     */
    @Autowired
    private KafkaListenerEndpointRegistry registry;

    /**
     * 開啟監(jiān)聽.
     *
     * @param listenerId 監(jiān)聽I(yíng)D
     */
    @Override
    public void startListener(String listenerId) {
        //判斷監(jiān)聽容器是否啟動(dòng),未啟動(dòng)則將其啟動(dòng)
        if (!registry.getListenerContainer(listenerId).isRunning()) {
            registry.getListenerContainer(listenerId).start();
        }
        //項(xiàng)目啟動(dòng)的時(shí)候監(jiān)聽容器是未啟動(dòng)狀態(tài),而resume是恢復(fù)的意思不是啟動(dòng)的意思
        //registry.getListenerContainer(listenerId).stop();
        log.info(listenerId + "開啟監(jiān)聽成功。");
    }

    /**
     * 停止監(jiān)聽.
     *
     * @param listenerId 監(jiān)聽I(yíng)D
     */
    @Override
    public void stopListener(String listenerId) {
        registry.getListenerContainer(listenerId).stop();
        log.info(listenerId + "停止監(jiān)聽成功。");
    }

}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java簡(jiǎn)單自定義異常實(shí)例代碼

    java簡(jiǎn)單自定義異常實(shí)例代碼

    這篇文章主要為大家詳細(xì)介紹了java簡(jiǎn)單自定義異常實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 把Jar文件轉(zhuǎn)成exe安裝文件的實(shí)現(xiàn)方法

    把Jar文件轉(zhuǎn)成exe安裝文件的實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇把Jar文件轉(zhuǎn)成exe安裝文件的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-11-11
  • Java直接輸出對(duì)象變成@.....的問(wèn)題及解決

    Java直接輸出對(duì)象變成@.....的問(wèn)題及解決

    這篇文章主要介紹了Java直接輸出對(duì)象變成@.....的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 詳解使用Spring Security進(jìn)行自動(dòng)登錄驗(yàn)證

    詳解使用Spring Security進(jìn)行自動(dòng)登錄驗(yàn)證

    本篇文章主要介紹了詳解使用Spring Security進(jìn)行自動(dòng)登錄驗(yàn)證,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-09-09
  • java模擬微信搶紅包的實(shí)例代碼

    java模擬微信搶紅包的實(shí)例代碼

    現(xiàn)在搶紅包的功能很受歡迎,本篇文章主要介紹了java模擬微信搶紅包的實(shí)例代碼。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • Spring Boot 搭建 ELK正確看日志的配置流程

    Spring Boot 搭建 ELK正確看日志的配置流程

    這篇文章主要介紹了Spring Boot 搭建 ELK正確看日志的配置流程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Springboot項(xiàng)目編寫測(cè)試單元完整步驟記錄

    Springboot項(xiàng)目編寫測(cè)試單元完整步驟記錄

    這篇文章主要介紹了如何使用JUnit編寫Spring?Boot項(xiàng)目中的測(cè)試單元,包括引入依賴、配置文件設(shè)置、啟動(dòng)文件創(chuàng)建以及編寫測(cè)試類的步驟,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • Java并發(fā)編程之常用的多線程實(shí)現(xiàn)方式分析

    Java并發(fā)編程之常用的多線程實(shí)現(xiàn)方式分析

    這篇文章主要介紹了Java并發(fā)編程之常用的多線程實(shí)現(xiàn)方式,結(jié)合實(shí)例形式分析了java并發(fā)編程中多線程的相關(guān)原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • Java Scala的隱式轉(zhuǎn)換詳解

    Java Scala的隱式轉(zhuǎn)換詳解

    隱式轉(zhuǎn)換是在Scala編譯器進(jìn)行類型匹配時(shí),如果找不到合適的類型,那么隱式轉(zhuǎn)換會(huì)讓編譯器在作用范圍內(nèi)自動(dòng)推導(dǎo)出來(lái)合適的類型。本文通過(guò)代碼示例介紹了Scala的隱式轉(zhuǎn)換,感興趣的小伙伴可以參考閱讀
    2023-04-04
  • Java中的ThreadPoolExecutor線程池詳解

    Java中的ThreadPoolExecutor線程池詳解

    這篇文章主要介紹了Java中的ThreadPoolExecutor線程池詳解,當(dāng)線程池中的線程數(shù)大于 corePoolSize 時(shí),keepAliveTime 為多余的空閑線程等待新任務(wù)的最長(zhǎng)時(shí)間,超過(guò)這個(gè)時(shí)間后多余的線程將被終止,需要的朋友可以參考下
    2023-12-12

最新評(píng)論