我正在使用 springboot 2、kafk 2.2.0、spring-kafka 2.2.5 制作项目
我使kafka exactly once环境和消息的产生和消耗都很好。
BUTkafka-consumer-groups.sh是这样说的。
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG
test_topic 0 23 24 1
test_topic 1 25 26 1
test_topic 2 21 22 1
Run Code Online (Sandbox Code Playgroud)
我只向 kafka 发送一条消息,但LOG-END-OFFSET加倍并始终保持 1 条延迟。(在我的 java 应用程序中,生产和消费按预期工作)
我不知道为什么 LOG-END-OFFSET 加倍了。
如果去掉exactly onceconfig,在LOG-END-OFFSET和CURRENT-OFFSETcount中没有问题。
这是我的kafkaTemplate设置代码。
@Bean
@Primary
public ProducerFactory<String, Object> producerFactory() {
Map<String, Object> producerProperties = new HashMap<>();
producerProperties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092";
producerProperties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
producerProperties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class);
// exactly once producer …Run Code Online (Sandbox Code Playgroud)