HTTP 통신을 통해 서버끼리 통신을 해도 되지만, 몇가지 단점이 존재합니다.
- HTTP 통신은 요청을 보내게되면, 응답을 받을동안 서버의 수행이 중단됩니다. ( 동기적 )
- 여러 서버에 동시에 정보를 전달하는것이 어렵습니다.
🎯 장점 : 서버간의 결합성을 감소시키고 확장성을 확보합니다.
서비스가 발전하면서 기능이 많아집니다. 하나의 서버에서 모든것을 처리하지 않는 방향을 생각해볼수있다
- 메시지 브로커에 메시지를 보내놓으면, 쌓여있는 해당 메시지를 처리하는 다른 서버가 처리하는 방식 ( 서버 끼리 통신 )
- 인증만 담당하는 서버를 따로 만들수도 있다.
- 채팅만 담당하는등의 서버
아래의 그림처럼 알림, 블로그, 인증 같은 기능을 한곳에 서버에서 처리를 했다면, 나눠서 처리할수 있다는 것입니다.
많이 알려진 메시지 브로커 : 카프카, 레디스, RabbitMq
(카프카, 레디스는 많이 들어본것 같다.)
Job Queue 패턴은 일종의 디자인 패턴이며, 아래 그림과 같이 메시지를 큐에 보관하여 대기 시킵니다.