Producer 는 메세지(요청)를 발행하고, Queue 는 메세지를 저장하는 버퍼에 해당하며, Consumer 는 메세지(요청)을 처리
위에서 설명한 로드밸런서를 통해 웹 서버 개수를 늘려서 트래픽에 대응하는 것은 모든 요청들을 동기적으로 처리하기 위함이다.
만약, 실시간으로 요청에 대한 동기적 처리가 필요한 것이 아니라면 비실시간으로 비동기로 처리하는 방법도 있다 -> 메세지 큐 이용
메시지 큐 통신 방식은 중간에 메세지 큐를 두고 Producer / Consumer를 갖는다.
Producer: 메세지(요청)를 발행
Queue: 메세지를 저장하는 버퍼
Consumer: 메세지(요청)을 처리
[메시지 큐 동작 원리]
Producer가 요청 -> Queue에 요청 저장 -> 서버에 여유가 생기면 그때 consumer가 요청 처리
[메세지 큐의 장점]
🔹비동기: Queue라는 메세지를 저장하는 버퍼(임시 저장소)가 있기 때문에 나중에 처리 가능 🔹탄력성: consumer 서비스가 다운되거나, 문제가 생겨도 다시 살아나서 메세지를 소비만 하면 된다. (비 🔹확장성: Producer가 엄청 많아져도, Consumer가 적어도 서비스를 원하는대로 확장할 수 있음. 🔹낮은 결합도: consumer와 분리되어 있어, consumer에 문제가 생겨도, 구현체가 바뀌어도 상관 없음 🔹보장성: Queue안에 있는 모든 메시지는 Consumer 서비스에서 모두 처리됨을 보장
로드밸런서의 등장으로 인해 수평적 확장으로 다수의 웹 서버를 한번에 운용할 수 있게되었다. 이에 따라 웹 어플리케이션의 버전을 바꾸기 위해 재배포를 할때 단 하나의 웹 서버만 바꾸는것이 아니라 모든 다수의 웹 서버를 새로운 버전으로 바꾸는 재배포를 해야해서, 관련된 몇가지 전략들이 등장하였다.
Producer 는 메세지(요청)를 발행하고, Queue 는 메세지를 저장하는 버퍼에 해당하며, Consumer 는 메세지(요청)을 처리
위에서 설명한 로드밸런서를 통해 웹 서버 개수를 늘려서 트래픽에 대응하는 것은 모든 요청들을 동기적으로 처리하기 위함이다.
만약, 실시간으로 요청에 대한 동기적 처리가 필요한 것이 아니라면 비실시간으로 비동기로 처리하는 방법도 있다 -> 메세지 큐 이용
메시지 큐 통신 방식은 중간에 메세지 큐를 두고 Producer / Consumer를 갖는다.
Producer: 메세지(요청)를 발행
Queue: 메세지를 저장하는 버퍼
Consumer: 메세지(요청)을 처리
[메시지 큐 동작 원리]
Producer가 요청 -> Queue에 요청 저장 -> 서버에 여유가 생기면 그때 consumer가 요청 처리
[메세지 큐의 장점]
🔹비동기: Queue라는 메세지를 저장하는 버퍼(임시 저장소)가 있기 때문에 나중에 처리 가능 🔹탄력성: consumer 서비스가 다운되거나, 문제가 생겨도 다시 살아나서 메세지를 소비만 하면 된다. (비 🔹확장성: Producer가 엄청 많아져도, Consumer가 적어도 서비스를 원하는대로 확장할 수 있음. 🔹낮은 결합도: consumer와 분리되어 있어, consumer에 문제가 생겨도, 구현체가 바뀌어도 상관 없음 🔹보장성: Queue안에 있는 모든 메시지는 Consumer 서비스에서 모두 처리됨을 보장
로드밸런서의 등장으로 인해 수평적 확장으로 다수의 웹 서버를 한번에 운용할 수 있게되었다. 이에 따라 웹 어플리케이션의 버전을 바꾸기 위해 재배포를 할때 단 하나의 웹 서버만 바꾸는것이 아니라 모든 다수의 웹 서버를 새로운 버전으로 바꾸는 재배포를 해야해서, 관련된 몇가지 전략들이 등장하였다.