190.8. Kafka 소비자로 수동 커밋 사용
Camel 2.21에서 사용 가능
기본적으로 Kafka 소비자는 지정된 간격을 사용하여 오프셋이 백그라운드에서 자동으로 커밋되는 자동 커밋을 사용합니다.
수동 커밋을 강제 적용하려면 메시지 헤더에 저장된 Camel Exchange에서 KafkaManualCommit API를 사용할 수 있습니다. 이를 위해서는 KafkaComponent 또는 끝점에서 allowManualCommit 옵션을 true 로 설정하여 수동 커밋을 켜야 합니다. 예를 들면 다음과 같습니다.
KafkaComponent kafka = new KafkaComponent();
kafka.setAllowManualCommit(true);
...
camelContext.addComponent("kafka", kafka);
그런 다음 Camel Processor 와 같은 Java 코드에서 KafkaManualCommit 을 사용할 수 있습니다.
public void process(Exchange exchange) {
KafkaManualCommit manual =
exchange.getIn().getHeader(KafkaConstants.MANUAL_COMMIT, KafkaManualCommit.class);
manual.commitSync();
}
그러면 Kafka에서 커밋이 승인될 때까지 차단되거나 예외가 발생하는 경우 동기 커밋이 강제 실행됩니다.
KafkaManualCommit 의 사용자 지정 구현을 사용하려는 경우 사용자 지정 구현 인스턴스를 생성하는 ECDHEy를 구성할 수 있습니다.
KafkaComponent 에서 사용자 지정 KafkaManualCommit