작성
·
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 기반의 서비스로 대체 가능한지 여쭤봅니다.
감사합니다.
답변 1
1
안녕하세요, 이도원입니다.
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) 만으로 처리할 수 있는 부분들도 있어서, 생산성 면에서는 유리한 측면도 있다고 생각됩니다.
감사합니다.