작성
·
878
1
목차를 보면, 카프카는 추후에 배우는것으로 확인되는데요.
그래도 좀 보면서 궁금한게...
각각의 서비스가 존재하는데, 해당 데이터 처리 후 다른 서비스에 API호출하는것에 비하여 장점이 있을까요?
예를 들면, 해당강의의 마지막부분에
Customer, Order, Shopping Cart라는 서비스들이 존재하는데, Customer에서 어떤 redis에 대한 데이터를 처리했고, 이는 Order서비스에도 업데이트가 필요하다면, 카프카를 통하지 않고, Order서비스에 REST API로 업데이트API를 호출하는것에 비하여 어떤 장점들이 있나 궁금하네요.
답변 1
2
안녕하세요, 이도원입니다.
문의사항 부분은 이번 강의 다음으로 진행될 MSA 패턴에서 자세히 설명하고 있습니다. 해당 강의는 MSA에서 데이터를 동기화하는 여러가지 방법과 패턴에 대해서 설명하려고 합니다.
간략하게 말씀드리면, 데이터 동기화의 방법 중 말씀하신 REASTful API를 통해서 하나의 데이터에 여러 서비스들이 직접 데이터를 가져 가는 방법도 있고, Kafka나 RabbitMQ와 같은 MQ를 이용하여 동기화 하는 방법도 있습니다. 각각의 장단점이 있습니다만, MQ를 이용하는 데이터 동기화의 전제는 MSA가 독립적인 언어와 데이터 스토리지를 갖고 있으며, 이는 서비스의 비즈니스 로직을 처리함에 있어 다른 서비스와 종속 관계를 최대한으로 갖지 않게 하기 위함입니다.
여러 서비스간에 데이터 동기화 문제를 위해 MQ를 이용하며, MQ는 다양한 리소스로부터 데이터를 읽고, 전달해주는 역할을 함과 동시에 이러한 데이터들에 대해 안전한 전달을 보장할 수 있도록 클러스터를 구성하여 사용합니다.
요약하면, 말씀하신 방법이 잘못 되었다기 보다는, 강의에서 얘기하고자 하는 것은 MSA 구조의 한 시나리오이고 MQ를 사용하는 기본적인 방법에 대해 소개하고 있습니다.
감사합니다.