강의

멘토링

로드맵

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

inflearnprogrammer님의 프로필 이미지
inflearnprogrammer

작성한 질문수

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

Orders Microservice와 Catalogs Microservice에 Kafka Topic의 적용

Spring Cloud Stream

작성

·

1.1K

·

수정됨

0

안녕하세요,
강의 잘 보고있습니다! 덕분에 손쉽게 스프링 클라우드에 적응할 수 있게되었어요:)

강의하신 내용과는 조금 다른 방법이지만 혹시나 해답을 얻을 수 있을지 질문드립니다. 구글링을 해봤는데 명확하지가 않아서요.

Apache Kafka와 Kafka Sink Connector로 마이크로서비스 동기화를 처리하셨는데요, 혹시 Spring Cloud Stream로 전부 대체할 수 있을지 여쭤보고 싶습니다.

우선 마이크로서비스간의 통신은 Spring Cloud Stream 2.0, 3.0 이상부터 지원하는 함수형 프로그래밍과 StreamBridge로 비교적 쉽게 환경을 구축할 수 있었는데요, 단일 DB 사용에 대한 동기화를 처리하는 Kafka Sink Connector의 기능도 Spring Cloud Stream 또는 다른 Spring Cloud 기반의 서비스로 대체 가능한지 여쭤봅니다.

감사합니다.

퀴즈

66%나 틀려요. 한번 도전해보세요!

Order 서비스와 Catalog 서비스 간에 Kafka를 사용하여 주문 수량 정보를 동기화하는 주된 목적은 무엇일까요?

각 서비스의 독립 데이터베이스 성능을 향상시키기 위해

사용자 인증 정보를 Catalog 서비스로 안전하게 전송하기 위해

주문 발생 시 Catalog 서비스의 재고 수량을 실시간에 가깝게 업데이트하기 위해

Order 서비스와 Catalog 서비스 간의 직접적인 RESTful API 호출을 완전히 대체하기 위해

답변 1

1

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

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

Spring Cloud Stream을 Kafka를 대신할 수 있는 해결책으로 생각하시는 것보다는, Kafka나 RabbitMQ와 같은 기술을 사용하기 위한 라이브러리로 이해하시는 것이 좋을 것 같습니다.

https://spring.io/projects/spring-cloud-stream

기본적으로 메시지를 주고 받을 수 있는 브로커들을 클러스터 형태로 구성되어 있고, 해당 메시지 브로커와의 통신 및 처리를 위해 Spring Cloud Stream 기술을 이용하신다고 보시는게 정확할 것 같습니다. 예를 들어, Kafka Cluster를 이용하면서 Kafka Connect 대신 Spring Cloud Stream을 이용하여 메시지와 기존 RDB 사이의 처리를 직접 구현하시는 것은 가능합니다. 다만, Kafka Connect를 사용하셨을 때는 간단한 Script (Sink, Source Connector) 만으로 처리할 수 있는 부분들도 있어서, 생산성 면에서는 유리한 측면도 있다고 생각됩니다.

감사합니다.

inflearnprogrammer님의 프로필 이미지
inflearnprogrammer

작성한 질문수

질문하기