2017-10-26 3 views
0

batch.size를 작게 유지하면 생산자에게 메시지를 더 자주 보내는 오버 헤드가 발생하고 동시에 처리량이 감소하고 메모리를 낭비하게됩니다.이 크기가로드에 따라 동적 일 수있는 솔루션이 있습니까?kafka 제작자에서 batch.size를 동적으로 만들 수 있습니까?

+1

https://issues.apache.org/jira/browse/KAFKA-1026 –

+0

들어오는 하중을 어떻게 예측합니까? 지난 1 분 동안 들어오는 하중은 다음/미래의 분과 같지 않을 수 있습니다. –

답변

0

이전 제작자를 중지하고 새 제작자를 시작한 경우에만. 생성자 객체는 메시지를 보내기 전에 모든 속성이 필요합니다. 작업 도중 속성을 수정할 수 없습니다.

+0

그래서이 속성을 설정하는 가장 좋은 방법은 무엇입니까? –

+0

이 문제를 바라 보는 관점은 대기 시간과 처리량입니다. 한 번에 하나씩 가질 수 있습니다. 최대 처리량을 얻으려면 linger.ms를 사용하고 최대 대기 시간을 설정하려면 linger.ms = 0으로 설정하십시오. – subzero

0

linger.msbatch.size 속성을 조합하여 사용할 수 있습니다. batch.size을 5242880 (5MB)으로 설정하고 linger.ms10 ms로 설정 한 경우 그런 다음 제작자는 배치 크기가 채워질 때까지/대기 시간에 도달 할 때까지 기다립니다.

공식 문서의 linger.ms 속성에 대해 자세히 알아보십시오.