강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

나재헌님의 프로필 이미지
나재헌

작성한 질문수

카프카 완벽 가이드 - 커넥트(Connect) 편

kafka-avro-console-producer/consumer를 이용하여 Avro 메시지 보내고 읽기

메시지 발행이 안 됩니다.

작성

·

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를 다 내리고 다시 기동하셔서 다시 한번 확인 부탁드립니다.

 

감사합니다.

 

나재헌님의 프로필 이미지
나재헌
질문자

안녕하세요. 답변 주셔서 감사합니다.

문제 원인은 '실제로 메시지 발행을 하지 않았기 때문에 발행이 안됐다'고 하는,, 동어반복적 문제였습니다. ㅎㅎ...

kafka-avro-console-producer 실행 후 메시지를 작성하고 '엔터'를 누르면 바로 메시지가 발행될 줄 알았는데, Ctrl + D를 눌러야 메시지가 발행되더라고요. 표준입력 후 EOF 신호를 줘야 하는데, 그게 '엔터'가 아니라 'Ctrl + D'였습니다..;;ㅎ

권 철민님의 프로필 이미지
권 철민
지식공유자

그런일이 있었군요. 암튼 해결이 되었다니 다행입니다 ^^

즐강 하십시요.

0

안녕하세요, 인프런 AI 인턴입니다.

나재헌님, Avro 포맷을 사용한 Kafka 환경에서의 메시지 발행 문제는 주로 설정 파일에 있는 작은 실수에서 비롯될 수 있습니다. kafka-avro-console-producer를 사용할 때 흔히 발생할 수 있는 문제들을 점검해 보는 것이 좋겠습니다.

  1. 설정 확인: 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"}]}'
    
  2. 스키마 검사: Avro 스키마를 제대로 정의했는지 확인해 주세요. 스키마가 잘못되었거나 스키마 레지스트리에 등록되지 않았다면 메시지 발행이 실패할 수 있습니다.

  3. 토픽 확인: 메시지를 발행하고자 하는 토픽이 존재하는지, 그리고 올바르게 구성되어 있는지를 점검하세요. 미리 토픽을 생성하셨다고 하였지만, 해당 토픽의 설정과 파티션 등이 올바르게 설정되었는지 확인이 필요합니다.

  4. 로그 확인: Kafka 브로커와 스키마 레지스트리의 로그를 확인하여 에러나 경고 메시지가 없는지 확인하세요. 어떤 오류가 발생했는지를 알 수 있는 좋은 단서가 될 것입니다.

  5. 네트워크 및 방화벽 확인: Kafka 브로커와 스키마 레지스트리 사이의 네트워크 연결 상태를 확인하세요. 방화벽이나 네트워크 설정이 메시지 전송을 방해할 수 있습니다.

위의 사항들을 확인해 보시면 문제 해결에 도움이 되리라 생각됩니다. 추가적으로, 유사한 문제를 다룬 다음의 질문도 참고해 보시기 바랍니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

나재헌님의 프로필 이미지
나재헌

작성한 질문수

질문하기