WEB/RabbitMQ

    Rabbitmq 설치초기

    Rabbitmq 설치초기

    PS C:\Windows\system32> rabbitmq-plugins list Listing plugins with pattern ".*" ... Configured: E = explicitly enabled; e = implicitly enabled | Status: * = running on rabbit@DESKTOP-6HPEM1U |/ [ ] rabbitmq_amqp1_0 3.8.2 [ ] rabbitmq_auth_backend_cache 3.8.2 [ ] rabbitmq_auth_backend_http 3.8.2 [ ] rabbitmq_auth_backend_ldap 3.8.2 [ ] rabbitmq_auth_backend_oauth2 3.8.2 [ ] rabbitmq_auth_mechanis..

    4. 애플리케이션 수신함(3)

    4. 애플리케이션 수신함(3)

    AMQP 메시지 구조 예약어를 제외하면 모든 속성은 사용하는 데 제약이 없으며, 별도로 기술되어 있지 않는 한 AMQP 브로커가 이를 무시한다. RabbitMQ에서 브로커가 지원하는 유일한 필드는 user-id 필드로, 브로커에 연결한 사용자 이름이 일치하는지 확인하는 데 사용한다. 표준 속성에 필요한 값이 없을 경우 headers 속성을 사용해서 추가적으로 키-값 쌍을 추가할 수 있다.

    3. 애플리케이션 수신함(2)

    3. 애플리케이션 수신함(2)

    수신함 구축 - 라우팅 전략은 메시지가 라우팅될 큐(혹은 다수의 큐)를 결정한다. 라우팅 전략은 자유로운 형식의 문자열로 구성된 라우팅 키와 잠재적인 메시지 메타 정보에 근거로 두고 있다. 여기에서 고려하는 사용자 간 메시징 시스템(user-to-user messaging system)에서는, 메시지를 수신자의 수신함 역할을 담당하는 큐로 라우팅해야 한다. 따라서 사용해야 하는 익스체인지 라우팅 전략은 다이렉트 방식이다. 그림과 같이 목적지 큐의 이름을 메시지 생성 시 사용했던 라우팅 키와 짝을 맞추는 방식이다. 애플리케이션에 메시징 로직을 접목시키기 위해 자바스크립트 프론트엔드와 자바 백엔드 사이에 이미 존재하는 폴링(Polling)방식을 따를 것이다. 그러나 이는 가장 효율적인 접근법은 아니지만 추후..

    2. 애플리케이션 수신함

    2. 애플리케이션 수신함

    애플리케이션 서버와 RabbitMQ 간에 여러 논리적인 채널을 다중화할 목적으로 물리적인 네트워크 연결을 설정해야 한다. 채널 생성과는 달리 연결을 만드는 작업에는 데이터 베이스 연결과 유사하게 비용이 많이 든다. 보통 데이터베이스 연결은 풀에서 관리되며 단일 실행 스레드가 각 인스턴스 풀을 사용한다. 하지만 AMQP는 다중화된 채널을 통해 여러 스레드가 단일 연결을 사용할 수 있다는 점에서 다르다. 현재로서는 CCM(가상회사)이 단일 연결부터 시작 리치 인터넷 애플리케이션(Rich Internet Application)이 자바로 작성되었으므로 클라이언트 API를 먼저 알아볼 것이다. ConnctionFactory factory = new ConnectionFactory(); factory.setUser..

    1. 메시징 개념

    1. 메시징 개념

    - 메시지 큐잉 (message queuing) : 애플리케이션이나 느슨하게 결합된 시스템 구성 요소 간 통신 방식 또는 메시징 이라고 부른다. - AMQP (Advanced Message Queuing Protocol) : 상호 정보 교환이 가능한 메시징 프로토콜의 의미를 정의한 명세서 RabbitMQ는 AMQP를 Erlang 기반으로 구현한것이다. - 가장 흔한 요청-응답 방식은 클라리언트 시스템이 원격 서버 시스템에 노출된 통신 지점과 동기 방식으로 상호작용한다. 시스템이 원격지 서버로 메시지를 전송하고, 상대방이 응답할 때까지 기다리는 방식은 원격 프로시저 호출이나 웹 서비스 호출 또는 리소스 소비 형태와 별반 다르지 않다. 시스템은 각 지점 사이에서 포인트 투 포인트 방식으로 정보를 주고받는다...