MQ와 amqp 프로토콜 원리에 대하여

프로젝트를 하면서 rabbitmq, activemq 등 뒤에 MQ라고 붙은 단어들을 많이 들었다.

메시지 큐를 알아보기 전에 어디에서 쓰이는지 먼저 알아보자.

일단 카카오 메시징 서버 직군에서 지원 자격중에 MQ에 대한 경험이 들어가 있다.

엄청난 트레픽을 받는 네이버 웹툰에서도 웹 서비스 인프라 이해 쪽에

Message Queue에 이해를 원하는 자격 요건도 볼 수 있다.

두 기업에서 MQ에 대한 이해를 요구하는 사례만 봐도 Mq에 대한 이해는 선택이 아닌 필수로 이다.

기존 어떤 문제 때문에 MQ라는 개념이 도입되어야 하는지와

나아가 AMQP에 프로토콜의 이해와 Rabbit의 적용되는 원리 까지 알아보도록 하자.

rabbitmq가 필요한 이유

기존 상태의 문제점

  • 애플리케이션과 강하게 결합되어 있으면 db서버가 응답할 때 까지 기다려야 한다.
  • db 장애시 애플리케이션에도 장애가 발생한다.

mq 를 이용하면 애플리케이션의 의존성을 제거 할 수 있다.

  • 느슨하게 결합된 설계
  • 애플리케이션 아키텍처는 더 이상 데이터 베이스 쓰기 성능에 영향을 받지 않는다.

  • 느슨하게 결합 구조의 애플리캐이션은 rabbitmq에 메시지를 발행한다.
  • 구독하고 있는 소비자에게 메세지를 전달한다.
  • 소비자가 처리해야할 양이 많아지면 소비자 애플리케이션의 처리량을 제어하거나 중지한다.
  • 메세지를 발행하는 애플리케이션은 변동 없이 이전과 같은 방식으로 데이터를 발행한다.
  • rabbitmq는 소비자를 추가해서 메세지를 전달한다.
  • 새로 추가한 소비자에게 메시지를 발행하는 애플리케이션을 수정 할 필요가 없다.


 Previous
JAVA8말고 JAVA9를 사용해볼까 JAVA8말고 JAVA9를 사용해볼까
현재 많은 개발자가 Java8 버전을 사용하여 개발을 하고 있습니다. Java9 부터는 6개월마다 새로운 버전의 Java가 출시되면서 현재 12버전까지 출시 하였습니다. 그 중에서 JAVA9 버전에 관해 대해 자
2019-04-23 김형진
Next 
Oracle And Index Principle Oracle And Index Principle
개발자도 알아야 할 Oracle의 원리오라클의 쿼리가 느린경우 어떻게 해야 할까요??? 개발자는 실행계획을 통해 옵티마이저가 어떻게 동작하는지 확인합니다 상황에 따라 다르겠지만 Table Full Scan을 Ind
2019-04-22 노성현
  TOC