2016-12-08 3 views
5

나는 카프카와 협력하여 데이터를 소비하려고합니다. 아래 라인에서 카프카의 데이터를 폴링 할 수 있습니다.kafka 소비자 폴링 타임 아웃

while (true) { 
    ConsumerRecords<byte[], <byte[]> records = consumer.poll(Long.MAX_VALUE); 
    for (ConsumerRecord<byte[], <byte[]> record : records) { 
     // retrieve data 
    } 
    } 

내 질문은 내가 시간 제한 등 200 제공하는 경우에 비해 시간 초과로 Long.MAX_VALUE을 제공함으로써 얻고 이익 인 것입니다. 프로덕션을 실행할 시스템의 모범 사례는 무엇입니까?

누구나 내게 높은 타임 아웃과 로우 타임 아웃의 차이점을 설명 할 수 있고 프로덕션 시스템에서 사용해야 할 수 있습니까?

답변

2

설정 MAX_VALUE는 동기 메시지의 한 종류로, 설문 조사에서 되돌아 오는 것을 기다릴 때까지 기다리는 반면, 낮은 값으로 설정하면 기다리는 것 외에 다른 작업을 수행 할 수 있습니다. 어떤 것을 사용해야하는지는 실제 시나리오에 따라 다릅니다.

+0

설명해 주셔서 감사합니다. 우리가 기다리지 않고 더 낮은 가치를 설정한다면 우리가 할 수있는 일은 무엇입니까? 나는 이것에 대한 어떠한 시나리오도 생각할 수 없다. 시간 제한 값을 낮추면 생산 시스템에서 할 수있는 일이 무엇인지, 아니면해야 할 일이 무엇인지 이해하도록 도와 줄 수 있습니까? 그리고 당신은 무엇을 추천합니까? – john

+0

플래그를 사용하여 루프를 중단하거나 루프 외부에서 정기적으로 수행해야하는 작업을 수행하려는 경우. KafkaConsumer는 깨우기 방법을 제공하여 소비자 스레드를 인터럽트하므로 실제로는 긴 폴 타임 아웃을 사용해도이를 수행 할 수 있습니다. – amethystic

+0

그래도 내 질문은 긴 시간 초과를 기다리는 대신 사람들이하는 일은 무엇인가? 사람들이 물건을 만드는 경우가 있습니까? – john

관련 문제