ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Message Queue
    카테고리 없음 2016. 6. 27. 23:11
    # 메시지 큐란.

    + 메시지 지향 미들웨어 (Message Oriented Middleware: MOM)은 비 동기 메시지를 사용하는 다른 응용프로그램 사이의 데이터 송수신을 의미함.
    + MOM을 구현한 시스템을 메시지 큐(Message Queue:MQ)라 한다.
    + 메시지 큐는 별도의 공정 작업을 연기할 수 있는 유연성을 제공하여 SOA (service-oriented architecture)의 개발에 도움을 준다.

    + 프로그래밍에서 MQ는 프로세스 또는 프로그램 인스턴스가 데이터를 서로 교환할 때 사용 
    + 데이터를 교환할 때 시스템이 관리하는 메시지 큐를 이용하는 것이 특징!
    + 서로 다른 프로세스나 프로그램 사이에 메시지를 교환할 때 AMQP(Advanced Message Queueing Protocol ) 사용
    + AMQP 는 메시지 지향 미들웨어를 위한 open standard application layer protocol
    + AMQP는 서로 다른 벤더 사이에 메시지 전송이 가능 JMS (Java Message Service) API 와는 달리 AMPQ는 wire-protocol을 제공, octet stream을 이용해서 다른 네트워크 사이에 데이터를 전송하는 포맷




    # Message Queue 장점

    + 비 동기(Asynchronous) : Queue에 넣기 때문에 나중에 처리 가능
    + 비 동조(Decoupling) : 애플리케이션과 분리 가능
    + 탄력성(Resilience) : 일부 실패시 전체 영향을 받지않음.
    + 과잉(Redundancy) : 실패 할 경우 재실행 가능.
    + 보증(Guarantees) : 작업이 처리된 걸 확인 할 수 있음
    + 확장성(Scalable) : 다수의 프로세스들이 큐에 메시지를 보낼 수 있음 




    # Message Queue 사용

    + 대용량 데이터 처리를 위한 배치 작업
    + 채팅 서비스
    + 비동기 데이터 처리
    + 웹 요청에 대한 응답을 기다리는 수가 증가하는 경우 대기 시간이 지연되어 서비스를 정상적으로 이용할 수 없음.
    + 기존에 분산되어 있던 데이터 처리를 한 곳에 집중해여 메시지 브로커를 두어 필요한 프로그램에 작업을 분산시키는 구조





    # Message Queue 사용처

    + 다른곳의 API로 부터 데이터 송수신 가능
    + 다양한 애플리케이션에서 비동기 통신을 할 수 있음
    + 이메일 발송 및 문서업로드 가능
    + 많은양의 프로세스들의 처리가가능






    #MQ를 사용하는 이유.

    + 속도의 문제보다는 안정성 때문에 사용, Transaction System을 구축하는 경우 Commit 기반의 공유 메모리 공간이 필요한데 그것이 DB일수도  MQ일수도 있음.



    오픈소스 메시지 큐


    # RabbitMQ 

    + AMQP 프로토콜을 구현해 놓은 프로그램
    + 신뢰성 - 안정성과 성능을 충족할 수 있도록 다양한 기능 제공
    + 유연한 라우팅 - Message Queue가 도착하기 전에 라우팅되며 플러그인을 통해 더 복잡한 라우팅 가능
    + 클러스터링 - 로컬네트워크에 있는 여러 RabbitMQ 서버를 논리적으로 클러스터링 할 수 있고 논리적 브로커도 가능
    *brocker : Message Queue 시스템을 말함
    + 관리 UI가 있어 편하게 관리가 가능하다
    + 거의 모든 언어와 운영체제 지원
    + 오픈소스이며 상업적 지원 




Designed by Tistory.