2016-07-31 2 views
0

C++ rdkafka에서 C++ 카프카 구현을 사용하고 있습니다. 질문은 RdKafka :: KafkaConsumer에 관한 것입니다. 주제를 시작할 때부터 소비자를 시작하도록 설정할 수 있습니까?C++ kafka 클라이언트 (rdkafka)

P. 로 표시됩니다 링크에서 소비자의 예는 RdKafka을 기반으로 :: 소비자 앞두고

+1

"conf-> set ("auto.offset.reset ","smallest ", errstr)"또는 "conf-> set ("auto.offset.reset ","earliest ", errstr)"시도 했습니까? " 최신 카프카 버전 용) –

+0

예. 그러나 도움이되지 않았습니다. 내가 처음부터 모든 메시지를 읽을 것으로 예상되는 소비자를 다시 시작할 때 (심지어 이전의 소비자 응용 프로그램이 충돌하기 전에 커밋 한 메시지도) –

+0

문제를 해결 했습니까? 그렇다면 어떻게? –

답변

1

덕분에 "auto.offset.reset는"작동하지 방법 "레거시 대신 KafkaConsumer를 사용합니다." "auto.offset.reset"은 유효한 커밋 된 오프셋이없는 경우에만 유효합니다. 흐름은 같다 : 발견 발견되지 않는 경우는 오프셋

  • 에서 다시 시작하는 경우 (다시 시작 또는 충돌 후) 오프셋
    • 에 대한
    • 보기

      1. 시작 소비자, auto.offset에 따라 오프셋 세트 .다시 놓기. 당신이 재시작 할 때마다 전체 항목을 읽으려면
  • 실제로 모든 오프셋을 투입 할 이유가 없다. 오프셋을 커밋하는 목적은 다시 시작한 후에이 오프셋에서 다시 시작하기를 원하기 때문에 남은 위치를 확인하는 것입니다.

    +0

    좋습니다, 감사합니다. 클라이언트의 후기 참여를 구현하는 가장 좋은 방법은 무엇입니까? (예를 들어 구성 메시지가 생성 된 후 많은 소비자가 자신의 시간과 일정에 따라 읽어야합니다.) 커밋을하지 않을 경우 실제로 group.id = GUID를 사용하여 각 소비자를 생성해도 동일한 동작이 발생하지만 그것은하지 않았다. –

    +0

    나는 정확하게 이해하지 못한다. 너는 정확히 무엇을하고 싶니? 새로운 질문으로 생각됩니다. SO를 깨끗하게 유지하려면 새로운 질문을 시작하는 것이 좋습니다. –

    +0

    @ MatthiasJ.Sax 또한이 문제가 발생합니다. auto.offset.reset = false를 사용하고 소비자가없는 소비자가없는 새로운 임의 생성 group.id가 여전히 도움이되지 않습니다. 소비자는 항상 최신 메시지를 읽습니다. – user1116377

    관련 문제