Advanced Message Queing Protocol의 약자로, 흔히 알고 있는 MQ의 오픈소스에 기반한 표준 프로토콜을 의미하며 이 프로토콜을 기반으로 하여 구현된 메시지 브로커로는 Apach Qpid, Apach ActiveMQ, RabbitMQ가 있다. 이 브로커들은 모두 AMQP를 구현하기 때문에, 사용법이 거의 비슷하다.
위의 표를 보면 총 4개의 구역으로 나뉘는데 publish, exchange, queue, consumer 로 표현할수 있다.
직접교환
Producer 메시지를 전달 -> 전달된 메시지를 queue에 저장 -> queue에 쌓인 메시지를 consumer가 검색하고 사용 -> queue에 저장되어 있는 메시지 삭제
링크드 인에서는 scalar 언어로 분산 시스템을 지원하고 내결함성을 갖는 게시/구독 시스템을 제작되었습니다.
실시간 데이터 피드를 관리하기 위해 통일된 높은 처리량, 낮은 지연시간을 지닌 플랫폼을 제공합니다.
Producer 메시지를 브로커에 전달 -> 전달된 메시지를 브로커의 토픽에 저장 -> consumer는 구독한 토픽에 접근하여 메시지를 가져옴
AMQP는 메세지 브로커이고 카프카는 pub/sub 방식이란 차이점이 있습니다.
메시지 브로커란 메시지 브로커는 지정된 수신인에게 메시지를 확인, 라우팅, 저장 및 전달하여 수신자의 상세 정보를 파악하지 않고 메시지를 전달합니다. 또한 queue에 저장된 메시지는 삭제처리 합니다.
그에 비해 카프카는 구독한 토픽정보를 설정하여 메시지를 가져오고 토픽에 저장되어 있는 메시지를 삭제하지 않고 저장하고 있어 비정상적인 예외에 대해 어느정도 대처가 가능합니다.
그렇기 때문에 카프카가 AMQP 보다는 무거운 단점이 있습니다.
감사합니다.
비동기 메세지 처리 종류? 와 구성에 대해서 알수있는 좋은글이네요! 감사합니다