의 승인을 얻는 방법. 어리석은 소리일지도 모르지만, ack가 수신 된 메시지의 시작과 끝 오프셋을 알 수있는 방법이 있습니까?메시지가 소비 또는 처리되면 내가 정확히 카프카에서 승인을받는 방법 카프카
답변
나는 그들이
이kafka.api.OffsetRequest.EarliestTime()가있는 데이터의 시작을 발견 있습니다 .. 읽기 offset로부터 선택할 수있는 다음과 같은 방법을 도입했습니다 지금까지 0.8에서 발견 무엇 kafka.api.OffsetRequest.LatestTime()은 새로운 메시지 만 스트리밍합니다.
예제 코드 아직 https://cwiki.apache.org/confluence/display/KAFKA/0.8.0+SimpleConsumer+Example
카프카 정말이 작업을 수행 할 수 있도록 구성되지 않은 승인 부분에 대해 확실하지. 이유를 이해하려면 디자인 설명서 here을 검토하십시오.
정확히 한 번 확인을 제공하려면 응용 프로그램에 대한 외부 추적 시스템을 만들어야합니다. 여기서는 승인을 명시 적으로 작성하고 트랜잭션 ID를 통해 잠금을 구현하여 상황이 한 번만 처리되도록합니다. 시스템 등의 구현의 계산 비용이 매우 높고, 대규모 트랜잭션 시스템은 비교적 이국적인 하드웨어를 필요로하며 카프카 등의 시스템보다 틀림없이 낮은 확장 성을 가지고 주요 이유 중 하나입니다. 당신은 강한 내구성의 의미를 필요로하지 않는 경우
, 당신은 마지막 메시지를 읽을 때의 거친 추적 할 그룹의 API를 사용할 수 있습니다. 이렇게하면 모든 메시지를 적어도 한 번 읽습니다. 참고 그룹의 API는 당신에게 명시 적으로 응용 프로그램이 실제 처리 보장이 시나리오에서 매우 약한 것을, 로직을 처리하는 자신의 추적 할 수있는 기능을 제공하지 않기 때문에. 멱등 원 (idempotent) 처리에 의존하는 체계는이 환경에서 일반적입니다.
또는, 당신은 (그것을 사용하는 꽤 복잡합니다)이 가난이라는 SimpleConsumer API를 사용할 수있는 당신이 명시 적으로 응용 프로그램 내에서 타임 스탬프를 추적 할 수 있습니다. 이것은 응용 프로그램 큐에서 읽은 데이터의 자신의 처리를 추적 할 수 있기 때문에 기본 카프카 API를 통해 달성 될 수 처리 보장의 가장 높은 수준이다.
- 1. 노하우 내가 카프카 카산드라에 카프카 항목에서 연결 설정하려는 카프카에서 카산드라
- 2. 카프카 : 카프카에서 라운드 로빈 파티션을 달성하는 방법
- 3. AWS의 카프카 소비 문제
- 4. 카프카에서 사용중인 디스크 공간을 확인하는 방법
- 5. 카프카에서 메시지를 작성한 시간
- 6. 카프카 한 주제를 어떻게 소비 할 것인가
- 7. 카프카 다중 파티션 주문
- 8. 는 카프카에서 카프카 (0.90 버전)에 액세스하는 동안
- 9. 카프카 파티션
- 10. 봄 구름과 카프카에서 같은 주제로 보내고받는 방법
- 11. 카프카 소비자가 중단 한 곳에서 계속하지 않음
- 12. 카프카 : 주제에서 첫 번째 메시지를 소비 할 때 간헐적으로 느려짐
- 13. 카프카에서 연결 오류를 감지하는 방법
- 14. 카프카에서 거대한 파티션을 사용합니다.
- 15. 스레드가 뮤텍스에서 처리되면 어떻게됩니까?
- 16. 카프카 0.9 : 카프카는 카프카 소비자의 내 독서에서
- 17. 카프카 소비자 행동
- 18. 카프카 : 토픽 삭제 방법
- 19. 카프카에서 avro 스키마를 한 번만 보내는 방법
- 20. 카프카 - 새 메시지를 보는 방법
- 21. 정적 방법 메모리 소비
- 22. 카프카에서 많은 파일 읽기
- 23. 카프카에서 avro 인코딩 된 메시지 내의 코드
- 24. 여러 주제에 대한 카프카 소비자
- 25. 아파치 카프카 메시지 발송 및 균형로드
- 26. 소비자가 카프카에서 1MB 이상의 레코드를 요청하는 방법
- 27. 카프카에서 오프셋 읽기
- 28. 카프카에서 여러 소비자 생성하기
- 29. 카프카 소비자가 특정 키 메시지를들을 수 있습니까?
- 30. 크기가 GB 단위 인 메시지가 포함 된 카프카 성능