본문 바로가기

빅데이터/Kafka

카프카 스트림즈의 commit.interval.ms옵션

카프카 스트림즈에서 commit.interval.ms 옵션은 프로세서의 frequency 즉, 반복을 얼마만큼 인터벌 간격으로 할 것인가에 대한 것이다. 

The frequency in milliseconds with which to save the position of the processor. (Note, if processing.guarantee is set to exactly_once, the default value is 100, otherwise the default value is 30000.

예를 들어 KTable로 선언된 변수를 toStream으로 변경하는 구문이 있다고 가정하자. 이 때 30000이면 30초 인터벌을 가지고 변경을 수행한다. 만약 짧게 가져가고 싶다면 0이나 아주 작은 숫자로 두면 된다.

If you set commit.interval.ms = 0 Kafka Streams will commit "as soon as possible". In the implementation, there is a poll-process-loop that checks if a commit is required. If you set commit.interval.ms = 0 this check will evaluate to true every time and thus commit will happen each time. When the commit condition is checked is an internal implementation detail and there is no public contract how ofter the condition is checked. Note, it's not recommended to commit too frequently because it put additional load on Kafka Streams client and the brokers because committing is a sync operation and not for free.

관련 내용 : stackoverflow.com/questions/51782515/if-i-set-value-of-commit-interval-ms-in-kafka-stream-whether-it-will-be-able

반응형