pod*_*i17 2 java apache-kafka spring-boot kafka-consumer-api spring-kafka
我需要开始使用卡夫卡。我很难弄清楚消费者应该收到什么:根据我的理解,我们可以通过多种方式配置消费者:
示例1:
@KafkaListener(topics = "topic_name)
public void receiveSimpleString(@Payload String message) {
}
Run Code Online (Sandbox Code Playgroud)
示例2:
@KafkaListener(topics = "topic_name)
public void receiveConsumerRecord(@Payload ConsumerRecord<String, String> message) {
}
Run Code Online (Sandbox Code Playgroud)
示例3:
@KafkaListener(topics = "topic_name)
public void receiveObject(@Payload SomeCustomClass message) {
}
Run Code Online (Sandbox Code Playgroud)
示例4:
@KafkaListener(topics = "topic_name)
public void receiveSpringMessage(@Payload org.springframework.messaging.Message<T> message) {
}
Run Code Online (Sandbox Code Playgroud)
也许还有更多的方法,但那些曾经是我在研究 kafka+spring 时最常看到的。
现在的问题是:
是否有关于消费者应该收到什么的最佳实践?不同的例子有优点/缺点吗?
这没有黄金法则,这完全取决于您的具体用例。有些人,包括我自己,更喜欢通过ConsumerRecord
实例接收数据。这样您不仅可以访问实际的有效负载,还可以访问它附带的整个元数据。
您可能值得研究一下Kafka Streams API。这通常是从 Kafka 消费并向 Kafka 生产时使用的模式,因为exactly once delivery
.
归档时间: |
|
查看次数: |
942 次 |
最近记录: |