KafkaTemplate配置:發送兩個Topic

本文將從以下幾個方面詳細闡述如何使用KafkaTemplate配置發送兩個Topic。

一、KafkaTemplate簡介

KafkaTemplate是Spring Kafka提供的一個用於發送消息的工具類。通過使用KafkaTemplate,可以統一管理髮送Kafka消息的操作,簡化操作流程。

在KafkaTemplate中,需要配置一個ProducerFactory實例以及一個默認的Topic。當需要發送消息時,可以通過指定發送到的Topic,發送對應的消息。

二、配置發送兩個Topic

在使用KafkaTemplate發送多個Topic時,需要針對每個Topic都配置對應的KafkaTemplate實例。

1. 添加依賴

<dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka</artifactId>
    <version>2.8.1</version>
</dependency>

2. 配置KafkaTemplate實例

在Spring配置文件中配置兩個KafkaTemplate實例,分別用於發送不同的Topic。可以通過使用@Value註解,動態獲取配置文件中的Topic名稱。

@Configuration
public class KafkaTemplateConfig {
    @Value("${kafka.topic1}")
    private String topic1;
    @Value("${kafka.topic2}")
    private String topic2;

    @Bean
    public KafkaTemplate<String, String> kafkaTemplate1(ProducerFactory<String, String> producerFactory) {
        return new KafkaTemplate<>(producerFactory, true);
    }

    @Bean
    public KafkaTemplate<String, String> kafkaTemplate2(ProducerFactory<String, String> producerFactory) {
        return new KafkaTemplate<>(producerFactory, true);
    }

    @Bean
    public ProducerFactory<String, String> producerFactory() {
        Map<String, Object> properties = new HashMap<>();
        properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
        properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);

        return new DefaultKafkaProducerFactory<>(properties);
    }
}

3. 發送消息

通過定義KafkaTemplate實例,並指定發送消息的Topic,即可發送對應的消息。

@Service
public class KafkaProducerService {
    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate1;
    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate2;

    public void sendMessage1(String message) {
        kafkaTemplate1.send(topic1, message);
    }

    public void sendMessage2(String message) {
        kafkaTemplate2.send(topic2, message);
    }
}

三、總結

通過上述步驟,可以輕鬆配置發送多個Topic的KafkaTemplate實例,並發送對應的消息。需要注意的是,需要為每個Topic都配置對應的KafkaTemplate實例,並在發送消息時,指定發送的Topic。

原創文章,作者:ZKVOZ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/373524.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZKVOZ的頭像ZKVOZ
上一篇 2025-04-27 15:26
下一篇 2025-04-27 15:26

相關推薦

發表回復

登錄後才能評論