카프카 스트림즈에서 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.
반응형
'빅데이터 > Kafka' 카테고리의 다른 글
카프카를 이벤트 소싱, CQRS로 사용할 수 있을까? (2) | 2021.05.03 |
---|---|
confluent-kafka-go 컨슈머를 구현하는 5가지 방법 (0) | 2021.04.30 |
레디슈 큐(queue), 레디스 스트림(streams), 레디스 펍섭(pub/sub) 그리고 카프카와 비교 (0) | 2021.04.25 |
초~중급자를 위한 [아파치 카프카 애플리케이션 개발] 서적을 출간하였습니다. (12) | 2021.04.11 |
카프카 스트림즈 suppress() 사용할 때 ClassCastException 문제 (0) | 2021.04.06 |
Kafka streams 에러 : Size of data received by LongDeserializer is not 8 (0) | 2021.04.06 |