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

[백엔드]송아리아이티님의 프로필 이미지
[백엔드]송아리아이티

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Kafka Connect 설치 ②

Kafka Connector POST 요청시 에러 발생

작성

·

74

0

안녕하세요. 강의 잘 듣고 있습니다.

 

Kafka Connector 연결 부분에서 "my-source-connect" 를 등록하기 위해 POST 요청을 보내면, 아래와 같은 에러 로그가 발생합니다. (postman에서는 등록 요청시에는 201로 나오지만, status를 조회할 경우에는 fail로 나옵니다.)

무슨 이유인지 알 수 있을까요?

[2024-10-22 21:39:08,470] ERROR WorkerConnector{id=my-source-connect} Error while starting connector (org.apache.kafka.connect.runtime.WorkerConnector:193)

java.lang.NoSuchMethodError: 'boolean org.apache.kafka.common.utils.Utils.isBlank(java.lang.String)'

at io.confluent.connect.jdbc.util.StringUtils.isNotBlank(StringUtils.java:79)

at io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.getJdbcCredentialsProvider(GenericDatabaseDialect.java:2010)

at io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.<init>(GenericDatabaseDialect.java:192)

at io.confluent.connect.jdbc.dialect.MySqlDatabaseDialect.<init>(MySqlDatabaseDialect.java:67)

at io.confluent.connect.jdbc.dialect.MySqlDatabaseDialect$Provider.create(MySqlDatabaseDialect.java:57)

at io.confluent.connect.jdbc.dialect.DatabaseDialects.findBestFor(DatabaseDialects.java:134)

at io.confluent.connect.jdbc.JdbcSourceConnector.start(JdbcSourceConnector.java:87)

at org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:185)

at org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:210)

at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:349)

at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:332)

at org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140)

at org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117)

at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)

at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)

at java.base/java.lang.Thread.run(Thread.java:833)

[2024-10-22 21:39:08,472] INFO [Worker clientId=connect-1, groupId=connect-cluster] Session key updated (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1578)

[2024-10-22 21:39:08,474] ERROR [Worker clientId=connect-1, groupId=connect-cluster] Failed to start connector 'my-source-connect' (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1339)

org.apache.kafka.connect.errors.ConnectException: Failed to start connector: my-source-connect

답변 2

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

Kafka Connect 등록 시 가 201 응답 코드를 받았다고 하더라도, 정상적으로 Connector가 생성되지 않았을 수 있을 것 같습니다.

  1. Script의 오류 (오타, 공백 등)

  2. 데이터를 가져오고자 하는 Source에 대한 접속 오류 (DB의 경우라면 DB 접속 오류 등)

  3. Kafka Connect 서버의 오류 (Kafka + Kafka Connect가 연동 되어 있어야 정상적으로 작동됩니다)

올려주신 에러 메시지로는 위 3가지 정도의 추축이 가능할 것 같습니다. 작업하신 스크립트를 그대로 공유해 주시면, 환경을 조금 수정 후 제쪽에서 테스트해 보는 것도 가능할 것 같습니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. [백엔드]송아리아이티님

질문을 읽어보니, Kafka Connector를 설정하면서 NoSuchMethodError 에러가 발생하고 있네요. 이 오류는 주로 라이브러리나 의존성 간의 호환성 문제가 있을 때 발생합니다. 특히, 에러 메시지를 보면 org.apache.kafka.common.utils.Utils.isBlank 메소드가 존재하지 않는다고 나오는데, 이는 사용하는 Kafka Connect의 버전이나 JDBC 드라이버의 버전 간의 불일치에서 기인할 수 있습니다.

해결 방법:
1. 라이브러리 버전 호환성 확인: 사용하고 있는 Kafka Connect 및 JDBC 드라이버의 버전이 서로 호환되는지 확인하세요. Kafka와 관련된 모든 라이브러리가 동일한 버전 또는 호환 가능한 버전으로 맞춰져 있는지 보세요.

  1. 의존성 충돌 검사: Maven 등의 빌드 도구를 사용하는 경우, 의존성 트리(dependency tree)를 통해 어떤 버전의 라이브러리가 포함되어 있는지 확인하고 불필요한 중복이나 충돌이 있는지 검사하세요.

  2. Kafka Connect 및 드라이버 갱신: Kafka Connect나 JDBC 드라이버 코어 라이브러리를 최신 버전으로 갱신하는 것도 도움이 될 수 있습니다. 최신 버전은 대부분의 호환성 문제를 해결하면서 성능 개선도 함께 제공하므로, 업데이트를 고려해보세요.

유사한 문제를 경험한 다른 학습자들의 질문을 통해 추가적인 해결책을 얻어보실 수도 있습니다. 아래 링크의 내용을 참고하세요:

위 링크에서는 자주 발생하는 Kafka Connector 오류와 그 해결 방법에 관한 정보를 제공하고 있습니다.

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

[백엔드]송아리아이티님의 프로필 이미지
[백엔드]송아리아이티

작성한 질문수

질문하기