此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring for Apache Kafka 3.3.0spring-doc.cadn.net.cn

消息侦听器

使用消息侦听器容器时,必须提供侦听器以接收数据。 消息侦听器目前支持 8 个接口。 下面的清单显示了这些接口:spring-doc.cadn.net.cn

public interface MessageListener<K, V> { (1)

    void onMessage(ConsumerRecord<K, V> data);

}

public interface AcknowledgingMessageListener<K, V> { (2)

    void onMessage(ConsumerRecord<K, V> data, Acknowledgment acknowledgment);

}

public interface ConsumerAwareMessageListener<K, V> extends MessageListener<K, V> { (3)

    void onMessage(ConsumerRecord<K, V> data, Consumer<?, ?> consumer);

}

public interface AcknowledgingConsumerAwareMessageListener<K, V> extends MessageListener<K, V> { (4)

    void onMessage(ConsumerRecord<K, V> data, Acknowledgment acknowledgment, Consumer<?, ?> consumer);

}

public interface BatchMessageListener<K, V> { (5)

    void onMessage(List<ConsumerRecord<K, V>> data);

}

public interface BatchAcknowledgingMessageListener<K, V> { (6)

    void onMessage(List<ConsumerRecord<K, V>> data, Acknowledgment acknowledgment);

}

public interface BatchConsumerAwareMessageListener<K, V> extends BatchMessageListener<K, V> { (7)

    void onMessage(List<ConsumerRecord<K, V>> data, Consumer<?, ?> consumer);

}

public interface BatchAcknowledgingConsumerAwareMessageListener<K, V> extends BatchMessageListener<K, V> { (8)

    void onMessage(List<ConsumerRecord<K, V>> data, Acknowledgment acknowledgment, Consumer<?, ?> consumer);

}
1 使用此接口处理单个ConsumerRecord从 Kafka 使用者接收的实例poll()
2 使用此接口处理单个ConsumerRecord从 Kafka 使用者接收的实例poll()
3 使用此接口处理单个ConsumerRecord从 Kafka 使用者接收的实例poll() 访问Consumer对象。
4 使用此接口处理单个ConsumerRecord从 Kafka 使用者接收的实例poll() 访问Consumer对象。
5 使用此接口处理所有ConsumerRecord从 Kafka 使用者接收的实例poll()AckMode.RECORD在使用此接口时不受支持,因为侦听器将获得完整的批处理。
6 使用此接口处理所有ConsumerRecord从 Kafka 使用者接收的实例poll()
7 使用此接口处理所有ConsumerRecord从 Kafka 使用者接收的实例poll()AckMode.RECORD在使用此接口时不受支持,因为侦听器将获得完整的批处理。 访问Consumer对象。
8 使用此接口处理所有ConsumerRecord从 Kafka 使用者接收的实例poll() 访问Consumer对象。
Consumerobject 不是线程安全的。 您只能在调用侦听器的线程上调用其方法。
您不应执行任何Consumer<?, ?>影响 Consumer 的位置或侦听器中提交的偏移量的方法;容器需要管理此类信息。