# Kafka Connect를 활용하여 sink를 적용하는 방법에 대해 알아보기
1. 3개의 서비스가 실행되어 있어야 한다.
- 아파치 주키퍼
- 아파치 카프카
- 아파치 커넥터
2. 실행 프로세스는 아래와 같다.
- DB와 커넥션을 통해 다른 DB 및 경로로 데이터를 Sink 시키는 방식이다.
3. Kafka Sink 생성하기
- 해당 내용을 postman에 등록을 해줘야 한다.
{
"name":"my-sink-order-connect",
"config":{
"connector.class":"io.confluent.connect.jdbc.JdbcSinkConnector",
"connection.url":"jdbc:mysql://localhost:3306/mydb",
"connection.user":"root",
"connection.password":"test1357",
"auto.create":"true",
"auto.evolve":"true",
"delete.enabled":"false",
"tasks.max":"1",
"topics":"orders"
}
}
- 포스트맨 등록
- 등록된 sink 커넥트 확인, 위에서 등록한 커넥터를 확인 할 수 있다.
- localhost:8083/connectors/my-sink-order-connect/status 로 등록된 커넥터의 현재 상태를 확인할 수 있다.
4. 동작 프로세스
① Users는 Postman을 통해 REST API주소로 서비스를 호출한다.
② REST API 이다. (POST, GET, PUT, DELETE)
③ Postman 프로그램을 실행하여 RestAPI 주소를 호출한다.
④ Service이다. 실제 REST API로 호출된 서비스 프로세스가 실행된다.
⑤ Apache Kafka와 Connector 이다.
⑥ MySQL Database 이다.API를 호출하고 DB에서 데이터를 가져오거나 저장한다.
5. 실제 서비스 동작 및 Kafka Connector를 통한 MySQL DB에 데이터를 저장하기
서비스는 총 5개가 필요하다.
[1.Discovery, 2.주문, 3.사용자, 4.제품 카탈로그, 5.API GW]
- 실행 영상은 아래와 같다.
[MP4 버전]
- 서비스들을 컨테이너로 만들고 K8S에 올려보는 작업을 하면 마무리 될거 같다.
- 웹에서 orders의 내용을 출력하면 아래와 같다. (json 형태로 출력 되는것을 확인 할 수 있다.)
- 현재까지의 작업을 git에 업로드 해 놓았다.
https://github.com/stars/Nanninggu/lists/msa-service-code-kafka
- 끝 -
'MSA (MicroServiceArchitecture) > MSA Application (온라인 쇼핑몰))' 카테고리의 다른 글
7. kafka로컬 테스트 및 MariaDB 로컬 설치 후 H2 클라이언트 사용하기 (0) | 2023.04.11 |
---|---|
6. git에 config 정보 저장하기 (0) | 2023.04.07 |
5. Config 서비스 생성 (0) | 2023.04.06 |
4. 모든 서비스를 실행하기 (Eureka, API GW, User, Catalog, Order) (0) | 2023.04.04 |
3. CatalogService 만들기 (0) | 2023.04.04 |