작성
·
26
0
kafka-console-producer는 여전히 잘 동작합니다. 그런데 kafka-avro-console-producer로 메시지를 발행하면, 아무런 에러메시지 없어, 그냥 메시지 발행이 안 됩니다. schema-registry에는 잘 반영이 되는데, 토픽도 안 생기고, 미리 토픽을 만들어 발행해도 아무 반응이 없습니다. kafka-avro-console-producer와 kafka-broker간의 문제인 것 같은데,,
가령 kafka-console-producer, kafka-console-consumer, kafka-avro-console-consumer는 에러가 나든 안 나든 broker랑 상호작용을 하는데, 유독 kafka-avro-console-producer만 문제네요.. 혹시 이런 케이스를 겪어보셨을까요?
답변 2
0
안녕하십니까,
강의 실습 환경에서 실습 코드를 수행할 때 잘 안되시는 건가요?
kafka-avro-console-consumer --bootstrap-server localhost:9092 --topic avro_test \ --property schema.registry.url=http://localhost:8081 --from-beginning
아니면 별도의 운영 환경에서 안되시는 건가요?(별도의 운영 환경이라면 제가 도와 드릴 방법이 막연하군요)
실습 환경에서 안되시는 거라면,
schema-registry에 잘 반영이 된다고 하셨는데, subject가 출력이 된다는 말씀이신지요? 아래 명령으로 subject가 topic명 - key명/value 명으로 되어 있는지 확인 부탁드립니다.
http GET http://localhost:8081/subjects
등록이 되었는데도 여전히 안되면
kafka topic 디렉토리에 가시면 _schema topic이 있습니다. 이걸 삭제해 주십시요. 삭제전에 schema registry를 내려 주십시요.
kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic _schemas
그리고 zookeeper, kafka, connect, schema registry를 다 내리고 다시 기동하셔서 다시 한번 확인 부탁드립니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
나재헌님, Avro 포맷을 사용한 Kafka 환경에서의 메시지 발행 문제는 주로 설정 파일에 있는 작은 실수에서 비롯될 수 있습니다. kafka-avro-console-producer를 사용할 때 흔히 발생할 수 있는 문제들을 점검해 보는 것이 좋겠습니다.
설정 확인: Avro 포맷을 사용하기 위해서는 스키마 등록 URL을 명시적으로 설정해야 합니다. 다음과 같은 명령어 형식을 사용하여 스키마 레지스트리의 URL을 확인하세요:
kafka-avro-console-producer --broker-list localhost:9092 --topic your_topic_name --property schema.registry.url=http://localhost:8081 --property value.schema='{"type":"record","name":"myrecord","fields":[{"name":"f1","type":"string"}]}'
스키마 검사: Avro 스키마를 제대로 정의했는지 확인해 주세요. 스키마가 잘못되었거나 스키마 레지스트리에 등록되지 않았다면 메시지 발행이 실패할 수 있습니다.
토픽 확인: 메시지를 발행하고자 하는 토픽이 존재하는지, 그리고 올바르게 구성되어 있는지를 점검하세요. 미리 토픽을 생성하셨다고 하였지만, 해당 토픽의 설정과 파티션 등이 올바르게 설정되었는지 확인이 필요합니다.
로그 확인: Kafka 브로커와 스키마 레지스트리의 로그를 확인하여 에러나 경고 메시지가 없는지 확인하세요. 어떤 오류가 발생했는지를 알 수 있는 좋은 단서가 될 것입니다.
네트워크 및 방화벽 확인: Kafka 브로커와 스키마 레지스트리 사이의 네트워크 연결 상태를 확인하세요. 방화벽이나 네트워크 설정이 메시지 전송을 방해할 수 있습니다.
위의 사항들을 확인해 보시면 문제 해결에 도움이 되리라 생각됩니다. 추가적으로, 유사한 문제를 다룬 다음의 질문도 참고해 보시기 바랍니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
안녕하세요. 답변 주셔서 감사합니다.
문제 원인은 '실제로 메시지 발행을 하지 않았기 때문에 발행이 안됐다'고 하는,, 동어반복적 문제였습니다. ㅎㅎ...
kafka-avro-console-producer 실행 후 메시지를 작성하고 '엔터'를 누르면 바로 메시지가 발행될 줄 알았는데, Ctrl + D를 눌러야 메시지가 발행되더라고요. 표준입력 후 EOF 신호를 줘야 하는데, 그게 '엔터'가 아니라 'Ctrl + D'였습니다..;;ㅎ