programing

봄의 카프카 소비자 청취자 한 명이 여러 주제를 들을 수 있습니까?

firstcheck 2023. 8. 1. 21:32
반응형

봄의 카프카 소비자 청취자 한 명이 여러 주제를 들을 수 있습니까?

한 명의 청취자가 아래와 같은 여러 주제를 들을 수 있는지 아는 사람?"topic1"만 작동하는 것으로 알고 있습니다. 추가 항목을 추가하려면 어떻게 해야 합니까?아래 두 가지 모두에 대한 예를 보여주시겠습니까?도와주셔서 감사합니다!

@KafkaListener(topics = "topic1,topic2")
public void listen(ConsumerRecord<?, ?> record, Acknowledgment ack) {
    System.out.println(record);
} 

또는

ContainerProperties containerProps = new ContainerProperties(new TopicPartitionInitialOffset("topic1, topic2", 0));

예, 그냥 따라오세요.@KafkaListenerJava 문서:

/**
 * The topics for this listener.
 * The entries can be 'topic name', 'property-placeholder keys' or 'expressions'.
 * Expression must be resolved to the topic name.
 * Mutually exclusive with {@link #topicPattern()} and {@link #topicPartitions()}.
 * @return the topic names or expressions (SpEL) to listen to.
 */
String[] topics() default {};

/**
 * The topic pattern for this listener.
 * The entries can be 'topic name', 'property-placeholder keys' or 'expressions'.
 * Expression must be resolved to the topic pattern.
 * Mutually exclusive with {@link #topics()} and {@link #topicPartitions()}.
 * @return the topic pattern or expression (SpEL).
 */
String topicPattern() default "";

/**
 * The topicPartitions for this listener.
 * Mutually exclusive with {@link #topicPattern()} and {@link #topics()}.
 * @return the topic names or expressions (SpEL) to listen to.
 */
TopicPartition[] topicPartitions() default {};

사용 사례는 다음과 같습니다.

@KafkaListener(topics = {"topic1" , "topic2"})

application.properties 파일에서 여러 항목을 가져와야 하는 경우:

@KafkaListener(topics = { "${spring.kafka.topic1}", "${spring.kafka.topic2}" })

언급URL : https://stackoverflow.com/questions/41861207/can-a-single-springs-kafkaconsumer-listener-listens-to-multiple-topic

반응형