Spring Boot 中的 Kafka 分区

Kafka partitioning in SpringBoot

我是 Kafka 的新手。我需要通过 Spring Boot.Actually 为 Kafka 编写一个简单的生产者和消费者我正在从 micronaut 转移到 Spring Boot。我对主题的划分有疑问。在 micronaut 中,我使用 @KafkaKey 作为分区键,如下所示:

public void process(@KafkaKey MyKey kafkaKey, @Body MyRecord myRecord) 

当涉及到 spring 时,我不知道该怎么做,因为正如我所见,KafkaTemplete class 具有作为 Integer 对象的分区参数。

public ListenableFuture<SendResult<K, V>> send(String topic, Integer partition, K key, @Nullable V data) 

那么如何在 Spring 引导中执行第一行?

KafkaTemplate 有不同的发送消息的方法。例如:

  1. 使用提供的键将数据发送到提供的主题,没有分区

send(java.lang.String topic, K key, V data)

  1. 将数据发送到没有键或分区的提供的主题。

end(java.lang.String topic, V data)

您可以在这里选择最合适的方式: https://docs.spring.io/spring-kafka/api/org/springframework/kafka/core/KafkaTemplate.html