AMQP와 카프카

푸드테크·2022년 9월 13일
0

AMQP 란?

Advanced Message Queing Protocol의 약자로, 흔히 알고 있는 MQ의 오픈소스에 기반한 표준 프로토콜을 의미하며 이 프로토콜을 기반으로 하여 구현된 메시지 브로커로는 Apach Qpid, Apach ActiveMQ, RabbitMQ가 있다. 이 브로커들은 모두 AMQP를 구현하기 때문에, 사용법이 거의 비슷하다.


AMQP 특징


위의 표를 보면 총 4개의 구역으로 나뉘는데 publish, exchange, queue, consumer 로 표현할수 있다.

직접교환

  • 키를 사용한 라우팅 방식
  • 팬아웃 교환
    모든 메시지를 모든 큐로 라우팅하는 유형이다.
  • 토픽 교환
    와일드카드를 이용해서 메시지를 큐에 매칭시키는 방법이다

AMQP 작동 방식

Producer 메시지를 전달 -> 전달된 메시지를 queue에 저장 -> queue에 쌓인 메시지를 consumer가 검색하고 사용 -> queue에 저장되어 있는 메시지 삭제


카프카 란?

링크드 인에서는 scalar 언어로 분산 시스템을 지원하고 내결함성을 갖는 게시/구독 시스템을 제작되었습니다.

실시간 데이터 피드를 관리하기 위해 통일된 높은 처리량, 낮은 지연시간을 지닌 플랫폼을 제공합니다.


카프카 특징

  1. 모든 시스템으로 데이터를 실시간으로 전송하여 처리리할 수 있는 시스템
  2. 데이터가 많아지더라도 확장이 용이한 시스템
  3. Producer/Consumer 분리
  4. 메시지를 여러 Consumer에게 허용
  5. 높은 처리량을 위한 메시지 최적화
  6. Scale-out 기능 제공
  7. Eco-system

카프카 구성

  1. kafak broker
    카프카의 어플리케이션 서버
  2. zookeeper
    서버의 상태 검사 및 복구를 위한 코디네이터의 일반적인 기능 제공
  3. Producer
    메시지를 생산하여 브로커의 토픽으로 전달하는 역활
  4. Consumer
    브로커의 토픽으로 부터 저장된 메시지를 전달 받는 역활
  5. topic
    데이터베이스 테이블 정도의 개념, 카프카에 저장되는 데이터를 토픽이라는 이름으로 구분하기 위해서 사용

카프카 작동 방식

Producer 메시지를 브로커에 전달 -> 전달된 메시지를 브로커의 토픽에 저장 -> consumer는 구독한 토픽에 접근하여 메시지를 가져옴

AMQP와 카프카의 차이점

AMQP는 메세지 브로커이고 카프카는 pub/sub 방식이란 차이점이 있습니다.
메시지 브로커란 메시지 브로커는 지정된 수신인에게 메시지를 확인, 라우팅, 저장 및 전달하여 수신자의 상세 정보를 파악하지 않고 메시지를 전달합니다. 또한 queue에 저장된 메시지는 삭제처리 합니다.
그에 비해 카프카는 구독한 토픽정보를 설정하여 메시지를 가져오고 토픽에 저장되어 있는 메시지를 삭제하지 않고 저장하고 있어 비정상적인 예외에 대해 어느정도 대처가 가능합니다.
그렇기 때문에 카프카가 AMQP 보다는 무거운 단점이 있습니다.

감사합니다.

profile
푸드 테크 기술 블로그

1개의 댓글

comment-user-thumbnail
2022년 9월 13일

비동기 메세지 처리 종류? 와 구성에 대해서 알수있는 좋은글이네요! 감사합니다

답글 달기