2017-02-27 4 views
1

카프카 0.10을 사용 중입니다 ... enable.auto.commit이 TRUE 일 때 카프카에서 오프셋을 관리하는 방법에 대한 온라인상의 충돌 정보 (및 문서)가 있습니다. 메시지를 검색하는 동일한 poll() 메소드도 구성된 간격으로 커밋을 처리합니까?카프카 오프셋 관리

단일 스레드 응용 프로그램에서 poll에서 메시지를 검색하는 경우 SAME 스레드에서 메시지 처리 (오류 처리 포함)가 처리됩니다. 즉, 처리가 완료 될 때까지 poll()이 다시 호출되지 않습니다. 메시지를 잃을 때 두려움은 없습니다. 맞습니까? poll()이 후속 호출에서 커밋을 시도하는 경우에만 작동합니다 (물론 auto.commit.interval.ms가 경과 한 경우). 커밋이 메시지를 수신하는 즉시 (애플리케이션이 메시지를 처리하기 전에) 수행된다면, 이것은 우리에게 효과가 없을 것입니다 ....

메시지를 잃지 않을 것임을 확신하고 싶기 때문에 이것은 중요합니다. 우리가 자동 커밋 정책을 사용한다면. 중복 된 메시지는 우리에게는 용납 될 수 있지만 손실 된 데이터에 대한 허용 오차는 없습니다.

설명해 주셔서 감사합니다.

답변

3

메시지를 검색하는 동일한 poll() 메소드도 구성된 간격으로 커밋을 처리합니까?

예.

단일 스레드 응용 프로그램에서 poll에서 메시지를 검색하는 경우 SAME 스레드에서 완료 (처리 오류 포함)로 메시지를 처리합니다. 즉, 처리가 완료 될 때까지 poll()이 다시 호출되지 않습니다. 메시지를 잃을 때 두려움이 없다고 생각합니다, 맞습니까?

예. 합니다 (auto.commit.interval.ms이 경과 한 경우 물론,) 여론 조사()이이 완료 정확히 어떻게

(가) 후속 호출에 커밋 시도 할 경우

이에만 작동합니다.

자세한 내용은 여기를 참조하십시오. http://docs.confluent.io/current/clients/consumer.html

관련 문제