是的,Spring Boot Kafka 支持手动提交消息。在 Spring Boot 中,你可以通过设置 enable.auto.commit 属性为 false 来禁用自动提交,然后使用 KafkaTemplate 或 Consumer 的 commitSync() 或 commitAsync() 方法来手动提交消息。
以下是一个使用 KafkaTemplate 手动提交消息的示例:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.stereotype.Service;
@Service
public class KafkaProducer {
@Autowired
private KafkaTemplate<String, String> kafkaTemplate;
public void sendMessage(String topic, String message) {
kafkaTemplate.send(topic, message);
// 手动提交消息
kafkaTemplate.flush();
}
}
在这个示例中,我们首先使用 kafkaTemplate.send() 方法发送消息,然后调用 kafkaTemplate.flush() 方法手动提交消息。请注意,flush() 方法会等待所有消息都被发送并确认后才返回。