아파치 카프카 - 메세지 압축

함궈·2023년 9월 8일
0

아파치카프카

목록 보기
2/10

Message Compression at the Producer level

Compression can be enabled at the producer level and doesn't require any configuration change in the brokers or in the consumers

compression.type = none ( default ), gzip, lz4, snappy

Disadvantage(very minor)

  • producer, consumers must commit some CPU cycles to compression

linger.ms, batch.size 설정을 조정하여 배치 크기를 늘려 압축률을 늘릴 수 있다.

Message Compression at the Broker / Topic level

브로커에 적용하면, 모든 토픽에 적용되고, 토픽에 적용하면, 해당 토픽에만 적용된다.

compression.type ( 브로커 설정 )

  • producer (default) : 브로커는 프로듀서가 압축한 배치를 가져다 토픽의 로그 파일에 바로 저장

  • none : 모든 배치를 브로커가 압축 해제 ( 비효율적 )

  • 특정 유형( lz4, ... ) : 토픽에 설정된 압축 유형이 프로듀서의 것과 일치하면, 재압축하지 않는다.
    일치하지 않으면, 브로커가 배치를 압축 해제하고, 명시된 압축 방법으로 압축

Disadvantage

  • 브로커에서 압축을 수행하는 것이 CPU를 더 사용

배칭 향상 - linger.ms, batch.size

linger.ms ( default 0 ) : 배치를 전송할때까지 기다리는 시간

batch.size ( default 16KB ) : linger.ms 시간 전에 이 용량이 채워지면 배치 전송

배치 크기보다 큰 메세지가 있다면 배치에 넣지 않고 바로 전송

배치는 전송하는 파티션마다 하나씩 할당되므로 너무 큰 값으로 설정하면 메모리 낭비

Kafka Producer Metrics를 사용해 평균 배치 크기를 모니터링할 수 있음


출처

Udemy Kafka Streams 강의

0개의 댓글