作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要开始使用 kafka。我很难理解消费者应该收到什么:据我了解,我们可以通过多种方式配置消费者:
示例 1:
@KafkaListener(topics = "topic_name)
public void receiveSimpleString(@Payload String message) {
}
示例 2:
@KafkaListener(topics = "topic_name)
public void receiveConsumerRecord(@Payload ConsumerRecord<String, String> message) {
}
示例 3:
@KafkaListener(topics = "topic_name)
public void receiveObject(@Payload SomeCustomClass message) {
}
示例 4:
@KafkaListener(topics = "topic_name)
public void receiveSpringMessage(@Payload org.springframework.messaging.Message<T> message) {
}
也许还有更多的方法,但那些曾经是我在研究 kafka+spring 时最常看到的。
现在的问题是:
是否有关于消费者应该收到什么的最佳实践?不同示例有优缺点吗?
最佳答案
对此没有黄金法则,这完全取决于您的具体用例。有些人,包括我自己,更喜欢通过 ConsumerRecord
实例接收数据。这样,您不仅可以访问实际有效负载,还可以访问它附带的整个元数据。
您可能值得研究一下 Kafka Streams API .由于 exactly once delivery
,这通常是从 Kafka 消费和生产到 Kafka 时使用的模式。
关于java - 最佳实践 Springs Kafka Consumer : What kind of message should the consumer receive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72777983/
我是一名优秀的程序员,十分优秀!