Kafka 생산자는 브로커가 다시 시작될 때 대기 중인 메시지를 잃습니다.

Kafka 생산자는 브로커가 다시 시작될 때 대기 중인 메시지를 잃습니다.

나는 그 주제에 대해 많은 경험이 없으며 어쩌면 뭔가 잘못하고 있을 수도 있습니다.

Kafka 브로커를 중지하고 일시 중지한 후 다시 시작하면 문제가 발생합니다. 브로커가 시작된 지 몇 초 후에 생산자가 "주제가 존재하지 않습니다"라는 오류를 발생시킵니다. 이 오류로 인해 오프라인으로 버퍼링된 모든 메시지가 손실됩니다. 곧 오류가 사라지고 연속 메시지가 생성됩니다.

"auto.create.topics.enable" 서버 속성을 "true"로 변경하면 브로커를 다시 시작한 후에도 "주제가 존재하지 않습니다"라는 오류가 계속 발생하지만 버퍼링된 메시지는 예상대로 생성됩니다.

자동 토픽 생성이 허용되면 "토픽이 존재하지 않습니다"라는 오류가 일시적인 것으로 간주되고 생산자는 오류가 사라질 때까지 메시지 전송을 반복한다고 가정합니다. 그렇지 않으면 반복이 이루어지지 않고 버퍼링된 메시지가 손실됩니다.

"auto.create.topics.enable" = false를 사용하고 메시지를 잃지 않도록 뭔가를 할 수 있나요?

WSL2 Ubuntu 22.04.1에서 kafka_2.13-3.4.0을 실행하고 Windows 10에서 librdkafka v2.1.1과 함께 C++ 클라이언트를 사용합니다. 설정은 Delivery.timeout.ms=86400000, retries=2147483647, acks=all입니다. 주제는 복제 인자 1, 파티션 1을 사용하여 생성됩니다.

관련 정보