【问题标题】:Is there a way to log all incoming kafka requests in spring?有没有办法在春季记录所有传入的 kafka 请求?
【发布时间】:2021-10-16 02:42:07
【问题描述】:

我正在使用简单的 kafka 处理程序:

@KafkaListener(
  topics = Topic.NAME,
  clientIdPrefix = KafkaHandler.LISTENER_ID)
public class KafkaHandler {
  public static final String LISTENER_ID = "kafka_listener";

  @KafkaHandler(isDefault = true)
  @Description(value = "Event received")
  public void onEvent(@Payload Payload payload) {
    ...
  }

但是,我的对象(示例中的有效负载)未正确映射(某些字段为空)。 有没有办法在 spring-kafka 应用程序的某个地方记录所有传入的 kafka KV 对?

【问题讨论】:

    标签: spring-boot apache-kafka spring-kafka


    【解决方案1】:

    您可以处理整个 Kafka 记录,而不是仅处理有效负载。

    @KafkaListener(topics = "any-topic")
    void listener(ConsumerRecord<String, String> record) {
        log.info("{}",record.key());
        log.info("{}",record.value());
        log.info("{}",record.partition());
        log.info("{}",record.topic());
        log.info("{}",record.offset());
    }
    

    将字符串替换为所需的键、值格式,并在应用属性中定义反序列化器类。

    spring.kafka.consumer.key-deserializer=YourKeyDeserializer.class
    spring.kafka.consumer.value-deserializer=YourValueDeserializer.class
    

    【讨论】:

      猜你喜欢
      • 2021-06-17
      • 2019-08-25
      • 2020-02-12
      • 2013-05-30
      • 2013-09-20
      • 2014-01-04
      • 1970-01-01
      • 1970-01-01
      • 2021-06-11
      相关资源
      最近更新 更多