ㄹㅇㄹ
정의
: 동기 통신에는 작업이 순차적으로 실행됩니다. 즉, 각 작업이 완료되어야 다음 작업이 시작됩니다.
장점
: 각 단계가 순서대로 진행되기에 단순하고 예측 가능합니다.
단점
: 한 작업이 오래 걸리면 전체 프로세스가 지연될 수 있어 비효율적일 수 있습니다.
Ex) 전화 통화
전화를 끊으면 상대방과 더이상 통화 불가.
Ex) HTTP 요청
정의
: 비동기 통신에서는 작업이 독립적으로 실행될 수 있습니다. 한 작업이 완료될때까지 기다릴 필요없이 다음 작업을 진행할 수 있습니다.
장점
: 여러 작업을 동시에 진행할 수 있어 효율성이 증가합니다.
단점
: 작업 관리가 더 복잡해질수 있으며, 특히 순서나 데이터 일관성이 중요한 경우에는 더욱 그렇습니다.
Ex) 이메일
이메일을 보내도 우리는 문서를 작업하거나 다른 일을 할 수 있습니다.
메시지 큐는 시스템의 다양한 부분 간의 비동기 통신을 가능하게 하는 중요한 역할을 한다.
메시지 큐는 프로세스나 애플리케이션 간에 비동기 방식으로 메세지(데이터)를 전송할 수 있도록 하는 시스템이다. 메시지 큐에 일시적으로 저장되며, 수신자가 이를 처리할 수있을때까지 보관된다.
프로듀서
: 큐에 메세지를 보내는 구성 요소 or 서비스
컨슈머
: 큐에서 메시지를 가져와 처리하는 구성 요소 or 서비스
큐
: 메시지가 컨슈머에 의해 처리될 때까지 저장되는 공간
디커플링(Decoupling)
: 프로듀서와 컨슈머가 동시에 작동할 필요가 없어 프로듀서는 메시지를 보내고 기다리지 않고 다음 작업을 진행할 수 있습니다.
확장성
: 여러 컨슈머가 병렬로 메시지를 처리할 수 있습니다.
탄력성
: 컨슈머가 실패하더라도 메시지는 큐에 남아 있어 손실되지 않습니다.
Kafka: 대규모 실시간 데이터 처리를 위한 분산 스트리밍 플랫폼이다.
Amazon SQS (Simple Queue Service): AWS에서 제공하는 완전관리형 메시지 큐 서비스로, 확장성과 고가용성을 쉽게 구현할 수 있습니다.