티스토리 뷰

저번 시간에는 Kafka Connect를 설치했습니다. 이번에는 Kafka Connect에서 Source를 설정하려합니다.

Source는 Kafka 클러스터에 데이터를 전송하기전 데이터 소스들을 관리하는 중간 관리자라고 생각하면 좋을 것 같아요.


#Kafka Connect Source

Source에 데이터를 연결하기전 Connect가 정상적으로 실행중인지 먼저 확인해줍니다.

.\bin\windows\connect-distributed.bat .\etc\kafka\connect-distributed.properties

 

다음으로는 DB에 접속을 해줘야합니다. 커맨드는 기존에 사용했던 것처럼

아래와 같이 입력했습니다. DB에 위치가 다르면 cd 항목은 수정해주세요!

cd D:\mariadb-10.6.7-winx64\bin

mysql -uroot -p

use mydb

select * from users;

다음으로는 Post-Man을 통해서 Connect로 DB정보를 입력해보겠습니다.

접속 URL은 아래와 같고 POST방식으로 설정하셔야합니다!

localhost:8083/connectors

다음로는 Body값입니다. Json 형태로 작성해줍니다. 

(! 저는 3307 포트를 쓰고 있어서 아래와 같이 입력했습니다. 여러분들은 3306일 확률이 매우 높습니다. !)

{
    "name" : "my-source-connect",
    "config" : {
        "connector.class" : "io.confluent.connect.jdbc.JdbcSourceConnector",
        "connection.url":"jdbc:mysql://localhost:3307/mydb",
        "connection.user":"root",
        "connection.password":"test1357",
        "mode": "incrementing",
        "incrementing.column.name" : "id",
        "table.whitelist":"users",
        "topic.prefix" : "my_topic_",
        "tasks.max" : "1"
    }
}

정상적으로 요청이 보내졌다면 아래와 같은 응답이 옵니다.

 

정상적으로 Connector가 생성이 됐다면, 이제 해당 요청을 GET방식으로 보내봅니다.

그럼 위와 같이 저희가 생성상 connector의 정보를 확인 할 수 있습니다.

상세 정보가 보고싶다면, 해당 Connect명을 url에 이어 붙혀 확인 할 수도 있습니다.


#DB Insert

다음으로는, DB에 테스트 데이터를 Insert 해주려 합니다. 아래와 같이 입력해주세요.

다음으로는 다시 토픽을 확인해줍니다.

반드시 Kafka설치 폴더로 이동한 후 아래의 커맨드를 실행해주세요.

./bin/windows/kafka-topics.bat --bootstrap-server localhost:9092 --list

그럼 다음과 같이 my_topic_users가 추가된 것을 확인 할 수 있습니다.

그리고 아래의 커맨드를 통해서 해당 토픽을 정보를 불러옵니다.

./bin/windows/kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic my_topic_users --from-beginning

보시는 것처럼, 저희는 DB에 입력정보를 Insert했을 뿐인데, Kafka에도 해당 정보가 입력되어 있습니다.

이게 가능한 이유는 기존에 Connect를 작성할때 User Table정보를 입력했었습니다.

그렇기 때문에 Users라는 테이블 정보가 변동될때, 바뀌면서 발생한 메시지를 Connect에서 자동으로 Kafka에 전달하고 있습니다. 

리하자면, 데이터 소스에서 발생하는 메시지를 , Kafka에서는 Topic에 해당 값을 넣어 Kafka Connect 에서  Source로 쓰고 있음을 알고 있습니다. 


다음 포스팅에는 Topic에 정보를 사용해 DB에 정보를 입력 할 수 있도록 해주는 Sink에 대한 개념을 공부하려합니다. 두줄요약으로 마무리하겠습니다.

1. Source는 쉽게 생각하면 메시지가 발생하면 Topic에 담아주는 공간

2.  SinkTopic에 담겨있는 메시지를 DB에 저장하기 위한 중간 관리자

 

감사합니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함