12장. 라우팅 구성


라우팅은 메시지가 대상에 전달되는 프로세스입니다. 이를 위해 AMQ Interconnect는 메시지 라우팅 및 링크 라우팅이라는 두 가지 라우팅 메커니즘을 제공합니다.

메시지 라우팅
메시지 라우팅은 기본 라우팅 메커니즘입니다. 이를 사용하여 클라이언트 직접(direct-routed messaging) 사이 또는 브로커 큐(brokered messaging)에서 메시지별로 메시지를 라우팅할 수 있습니다.
링크 라우팅
링크 경로는 발신자와 라우터가 엔드 포인트 간에 메시지를 전달하는 수신자 간의 개인 메시징 경로를 나타냅니다. 클라이언트를 서비스에 연결하는 데 사용할 수 있습니다(예: 브로커 큐).

12.1. 메시지 라우팅 구성

메시지 라우팅은 기본 라우팅 메커니즘입니다. 이를 사용하여 클라이언트 직접(direct-routed messaging) 사이 또는 브로커 큐(brokered messaging)에서 메시지별로 메시지를 라우팅할 수 있습니다.

메시지 라우팅을 사용하면 다음을 수행할 수 있습니다.

12.1.1. 메시지 라우팅 이해

메시지 라우팅을 사용하면 생산자가 라우터에 전송할 때 메시지에서 라우팅이 수행됩니다. 메시지가 라우터에 도착하면 라우터는 메시지의 주소라우팅 패턴에 따라 메시지와 결제를 라우팅합니다.

12.1.1.1. 메시지 라우팅 흐름 제어

AMQ Interconnect는 결제 기반 흐름 제어 메커니즘을 사용하여 생산자가 하나 이상의 소비자가 이를 수신할 수 있는 경우에만 라우터에 메시지를 보낼 수 있도록 합니다. AMQ Interconnect는 메시지를 저장하지 않기 때문에 이 결제 기반 흐름 제어에서는 소비자가 없을 때 생산자가 메시지를 보내는 것을 방지합니다.

라우터에 메시지를 보내려는 클라이언트는 라우터에서 결제를 제공할 때까지 기다려야 합니다. 사용할 수 없는 메시지를 게시하려고 하면 클라이언트가 차단됩니다. 결제가 완료되면 클라이언트가 차단 해제되고 해당 메시지는 라우터로 전송됩니다.

참고

대부분의 AMQP 클라이언트 라이브러리를 사용하면 프로듀서에서 사용할 수 있는 한도를 확인할 수 있습니다. 자세한 내용은 클라이언트 설명서를 참조하십시오.

12.1.1.2. 주소

주소는 라우터 네트워크를 통해 메시지가 전달되는 방식을 결정합니다. 주소는 다음과 같은 메시징 네트워크의 끝점을 지정합니다.

  • 데이터를 사용하거나 서비스를 제공하는 끝점 프로세스
  • 여러 소비자와 여러 생산자와 일치하는 주제
  • 메시징 브로커 내의 엔터티:

    • 대기열
    • Greposive Topics
    • exchange

라우터가 메시지를 수신하면 메시지의 주소를 사용하여 메시지를 보낼 위치(대상 또는 1단계로 대상)를 결정합니다.

AMQ Interconnect는 주소의 모든 사용자가 라우터 네트워크의 모든 라우터에 직접 연결할 수 있으며 토폴로지를 이동할 수도 있다는 점에서 모바일로 간주합니다. 메시지가 여러 소비자 간에 브로드캐스트되거나 균형을 유지하는 경우 주소 사용자는 네트워크의 여러 라우터에 연결할 수 있습니다.

모바일 주소는 일반 라우터 운영 중에 검색되거나 관리 설정을 통해 구성될 수 있습니다.

12.1.1.3. 라우팅 패턴

라우팅 패턴은 모바일 주소가 있는 메시지가 네트워크를 통해 가져올 수 있는 경로를 정의합니다. 이러한 라우팅 패턴은 직접 라우팅에 사용할 수 있으며, 라우터는 브로커 없이 클라이언트 간에 메시지를 분산하고 간접 라우팅을 통해 클라이언트가 브로커를 통해 메시지를 교환할 수 있습니다.

라우팅 패턴은 Anycast(Balanced 및 Closest)와 Multicast의 두 가지 범주로 분류됩니다. 주소에는 하나의 소비자만 있는 "유니캐스트"라는 개념이 없습니다.

Anycast 배포는 각 메시지를 하나의 소비자에게 전달하지만 멀티캐스트 배포는 모든 사용자에게 각 메시지를 전달합니다.

각 주소에는 주소가 있는 메시지가 메시징 네트워크에서 가져올 수 있는 경로를 정의하는 다음 라우팅 패턴 중 하나가 있습니다.

균형

여러 소비자가 동일한 주소를 사용할 수 있도록 하는 anycast 방법입니다. 각 메시지는 단일 사용자에게만 전달되며 AMQ Interconnect는 라우터 네트워크에서 트래픽 부하를 분산합니다.

여러 소비자가 동일한 주소에 연결되어 있는 경우 각 라우터는 각 경로의 현재 설정되지 않은 전달 수를 고려하여 메시지를 수신해야 하는 아웃바운드 경로를 결정합니다. 즉, 전송이 더 높은 속도로 전달되는 경로를 따라 더 많은 메시지가 전달됩니다.

참고

AMQ Interconnect 어느 조치도 사용할 아웃바운드 경로를 결정하기 위해 메시지 조정 시간을 사용하지도 않습니다.

이 시나리오에서는 경로 길이에 관계없이 메시지가 두 수신자에 분산됩니다.

그림 12.1. 균형 잡힌 메시지 라우팅

균형 잡힌 메시지 라우팅
가장 가까운

모든 메시지가 동일한 주소에 대한 다른 소비자가 있더라도 대상에 도달하기 위해 가장 짧은 경로를 따라 전송되는 anycast 방법입니다.

AMQ Interconnect는 각 소비자에게 도달하는 토폴로지 비용을 기반으로 가장 짧은 경로를 결정합니다. 비용이 가장 낮은 사용자가 여러 개인 경우 메시지는 해당 소비자 간에 균등하게 분산됩니다.

이 시나리오에서는 Sender 가 보낸 모든 메시지가 Receiver 1 로 전달됩니다.

그림 12.2. 가장 가까운 메시지 라우팅

가장 가까운 메시지 라우팅
멀티 캐스트

메시지는 주소에 연결된 모든 사용자에게 전송됩니다. 각 소비자는 메시지의 사본을 하나씩 받습니다.

이 시나리오에서는 모든 메시지가 모든 수신자로 전송됩니다.

그림 12.3. 멀티 캐스트 메시지 라우팅

멀티 캐스트 메시지 라우팅

12.1.1.4. 메시지 분류 및 신뢰성

AMQ Interconnect는 다음과 같은 수준의 신뢰성을 사용하여 메시지를 전달할 수 있습니다.

  • 대부분의 경우
  • 최소 한 번
  • 정확히 한 번만

생산자가 라우터에 대한 링크를 설정할 때 생산자와 라우터 간에 신뢰성 수준을 협상합니다. 협상된 수준의 신뢰성을 달성하기 위해 AMQ Interconnect는 모든 메시지를 사전 고정 또는 설정되지 않은 것으로 처리합니다.

pre-settled
때때로 불을 잊고 잊을 때 라우터는 들어오고 나가는 전달을 고정하고 결제를 메시지의 대상으로 전파합니다. 그러나 이는 제공을 보장하지 않습니다.
unsettled

AMQ Interconnect는 생산자와 소비자 간에 결제를 전파합니다. anycast 주소의 경우 라우터는 들어오는 전달을 결과 발신 전달과 연결합니다. 이 연결을 기반으로 라우터는 소비자에서 생산자로 전달 상태의 변경 사항을 전달합니다.

멀티 캐스트 주소의 경우 라우터는 들어오는 전달을 모든 아웃바운드 전달과 연결합니다. 라우터는 각 소비자가 제공의 최종 상태를 설정할 때까지 기다립니다. 나가는 모든 전달이 최종 상태에 도달한 후 라우터는 원래 인바운드 전달에 대한 최종 제공 상태를 설정하고 이를 프로듀서로 전달합니다.

다음 표에서는 anycast 또는 멀티캐스트 주소로 전송된 설정되지 않은 메시지에 대한 신뢰성을 설명합니다.

최종 배치Anycast멀티 캐스트

승인

소비자는 메시지를 수락했습니다.

적어도 한 명의 소비자가 메시지를 수락했지만 소비자는 이를 거부하지 않았습니다.

해제됨

메시지가 대상에 도달하지 않았습니다.

이 메시지는 소비자에게 도달하지 않았습니다.

modified

메시지는 대상에 도달하거나 도달하지 않았을 수 있습니다. 전달은 "실행 중"으로 간주되며 "최소 한 번 이상" 전달이 필요한 경우 다시 시작해야합니다.

메시지는 소비자 중 하나에 도달하거나 도달하지 않았을 수 있습니다. 그러나 소비자는 이를 거부하거나 허용하지 않습니다.

rejectd

소비자는 메시지를 거부했습니다.

한 명 이상의 소비자가 메시지를 거부했습니다.

12.1.2. 주소 의미 체계 구성

브로커를 사용하지 않고도 클라이언트 간에 메시지를 라우팅할 수 있습니다. 브로커리스 시나리오( 직접 경로 메시징라고도 함)에서 AMQ Interconnect는 클라이언트 간에 직접 메시지를 라우팅합니다.

클라이언트 간에 메시지를 라우팅하려면 라우팅 배포 패턴을 사용하여 주소를 구성합니다. 라우터가 이 주소가 있는 메시지를 수신하면 메시지는 주소의 라우팅 배포 패턴에 따라 대상 또는 대상으로 라우팅됩니다.

절차

  1. /etc/qpid-dispatch/qdrouterd.conf 구성 파일에서 address 섹션을 추가합니다.

    address {
        prefix: my_address
        distribution: multicast
        ...
    }
    접두사 | 패턴

    주소 설정을 적용해야 하는 주소 또는 주소 그룹입니다. 주소의 정확한 주소 또는 시작 세그먼트와 일치하도록 접두사를 지정할 수 있습니다. 또는 와일드카드를 사용하여 주소와 일치하는 패턴을 지정할 수 있습니다.

    접두사 는 정확한 주소 또는 . 또는 / 문자로 구분된 주소 내의 시작 세그먼트와 일치합니다. 예를 들어 my_address 접두사는 my_address.1 주소뿐만 아니라 my_address.1my_address/1 과 일치합니다. 그러나 my_address1 과 일치하지 않습니다.

    패턴은 패턴에 해당하는 주소와 일치합니다. 패턴은 . 또는 / 문자로 구분된 일련의 단어입니다. 와일드카드 문자를 사용하여 단어를 나타낼 수 있습니다. * 문자는 정확히 하나의 단어와 일치하며 # 문자는 0개 이상의 단어와 일치합니다.

    *# 문자는 와일드카드로 예약되어 있습니다. 따라서 메시지 주소에 사용해서는 안 됩니다.

    주소 패턴 생성에 대한 자세한 내용은 12.1.5절. “주소 패턴 일치” 을 참조하십시오.

    참고

    /# 을 추가하여 접두사 값을 패턴으로 변환할 수 있습니다. 예를 들어 a/b/c 접두사는 a/b/c/# 패턴과 동일합니다.

    distribution

    메시지 배포 패턴입니다. 기본값은 밸런싱 이지만 다음 옵션 중 하나를 지정할 수 있습니다.

    • 균형 - 주소로 전송된 메시지는 수신자 중 하나로 라우팅되며 라우팅 네트워크는 결제 속도를 기반으로 트래픽 부하를 분산합니다.
    • 가장 가까운 - 주소로 전송된 메시지는 대상에 도달할 수 있는 짧은 경로에 전송됩니다. 즉, 동일한 주소에 대해 여러 수신자가 있는 경우 가장 가까운 수신자만 메시지를 수신하게 됩니다.
    • 멀티 캐스트 - 메시지는 게시/서브스크립션 모델의 주소에 연결된 모든 수신자에게 전송됩니다.

      메시지 배포 패턴에 대한 자세한 내용은 12.1.1.3절. “라우팅 패턴” 을 참조하십시오.

    추가 속성에 대한 자세한 내용은 qdrouterd.conf 매뉴얼 페이지의 address 를 참조하십시오.

  2. 주소를 사용해야 하는 다른 라우터에 동일한 주소 섹션을 추가합니다.

    이 라우터 구성 파일에 추가한 주소는 이 라우터가 주소로 전송된 메시지를 배포하는 방법만 제어합니다. 이 주소에 대한 메시지를 배포해야 하는 라우터를 라우터 네트워크에 있는 경우 각 구성 파일에 동일한 주소 섹션을 추가해야 합니다.

12.1.3. 우선순위가 지정된 메시지 전달을 위한 주소 구성

주소의 우선 순위 수준을 설정하여 AMQ Interconnect가 해당 주소로 전송된 메시지를 처리하는 방법을 제어할 수 있습니다. 연결 범위 내에서 AMQ Interconnect는 우선 순위에 따라 메시지를 처리합니다. 많은 양의 메시지가 있는 연결의 경우 우선순위가 높은 메시지의 대기 시간이 줄어듭니다.

높은 우선순위 수준을 주소에 할당한다고해서 주소로 전송된 메시지가 우선순위가 낮은 주소로 전송되기 전에 전달된다는 보장은 없습니다. 그러나 우선순위가 높은 메시지는 다른 메시지보다 라우터 네트워크를 통해 더 빠르게 이동합니다.

참고

메시지 헤더에서 우선순위 수준을 설정하여 개별 메시지의 우선 순위 수준을 제어할 수도 있습니다. 그러나 주소 우선순위가 우선합니다. 우선순위 수준이 다른 주소로 우선순위를 지정한 메시지를 보내는 경우 라우터는 주소 우선 순위 수준을 사용합니다.

절차

  • /etc/qpid-dispatch/qdrouterd.conf 구성 파일에서 주소를 추가하거나 편집하고 우선순위 수준을 할당합니다.

    이 예제에서는 우선순위 수준이 가장 높은 주소를 추가합니다. 라우터는 우선 순위가 낮은 메시지보다 먼저 이 주소로 전송된 메시지를 전달하려고 합니다.

    address {
        prefix: my-high-priority-address
        priority: 9
        ...
    }
    priority
    이 주소로 전송된 모든 메시지에 할당할 우선 순위 수준입니다. 유효한 우선순위 수준의 범위는 0-9이며, 숫자가 클수록 우선순위가 높습니다. 기본값은 4입니다.

추가 리소스

  • 메시지에서 우선 순위 수준을 설정하는 방법에 대한 자세한 내용은 AMQP 1.0 사양 을 참조하십시오.

12.1.4. 브로커링 메시징 구성

"store 및 forward" 기능이 필요한 경우 브로커링된 메시지를 사용하도록 AMQ Interconnect를 구성할 수 있습니다. 이 시나리오에서는 클라이언트가 라우터에 연결하여 메시지를 보내고 받고, 라우터는 메시지 브로커의 대기열로 또는 큐에서 메시지를 라우팅합니다.

다음을 구성할 수 있습니다.

12.1.4.1. AMQ Interconnect에서 브로커링 메시징을 활성화하는 방법

브로커링된 메시징을 사용하면 AMQ Interconnect에서 브로커 큐에 메시지를 저장할 수 있습니다. 이를 위해서는 브로커와의 연결, 브로커 대기열을 나타내는 waypoint 주소, waypoint 주소에 연결할 자동 링크가 필요합니다.

autolink는 경로 주소에 연결할 라우터에 의해 자동으로 생성되는 링크입니다. 자동 링크를 사용하면 브로커가 아닌 라우터에서 클라이언트 트래픽이 처리됩니다. 클라이언트는 해당 링크를 라우터에 연결한 다음 라우터는 내부 자동 링크를 사용하여 브로커의 큐에 연결합니다. 따라서 라우터에 연결된 클라이언트 수에 관계없이 큐에 항상 단일 생산자 및 단일 소비자가 있습니다.

autolinks는 링크 라우팅과 구별되는 메시지 라우팅 의 한 형태입니다. 소비자와 관련된 의미 체계를 사용하려는 경우(예: 전달 가능-here=true 수정된 전달 상태)를 사용하는 것이 좋습니다.

그림 12.4. 브로커링 메시징

브로커링 메시징

이 다이어그램에서 발신자는 라우터에 연결하여 my_queue에 메시지를 보냅니다. 라우터는 발신 링크를 브로커에 연결한 다음 my_queue에 메시지를 보냅니다. 나중에 수신자가 라우터에 연결되고 my_queue의 메시지를 요청합니다. 라우터는 수신 링크를 브로커에 연결하여 my_queue에서 메시지를 수신한 다음 수신자에게 전달합니다.

여러 기본 물리적 큐로 구성된 하나의 논리 대기열인 분할된 큐로 메시지를 라우팅할 수도 있습니다. 대기열 분할을 사용하면 단일 큐를 여러 브로커에 배포할 수 있습니다. 클라이언트는 메시지를 보내고 받을 shard를 보유한 모든 브로커에 연결할 수 있습니다.

그림 12.5. 분할된 큐가 있는 브로커링 메시지

Sharded Queue를 사용하여 브로커링 메시징

이 다이어그램에서는 분할된 큐(my_queue)가 두 브로커에 분산됩니다. 라우터는 클라이언트와 브로커 모두에 연결됩니다. 발신자가 라우터에 연결되고 my_queue에 메시지를 보냅니다. 라우터는 각 브로커에 발신 링크를 연결한 다음 각 shard에 메시지를 보냅니다(기본적으로 라우팅 배포가 균형을 유지합니다). 나중에 수신자가 라우터에 연결되고 my_queue의 모든 메시지를 요청합니다. 라우터는 수신 링크를 브로커 중 하나에 연결하여 my_queue에서 메시지를 수신한 다음 수신자에게 전달합니다.

12.1.4.2. 브로커 큐를 통해 메시지 라우팅

브로커 큐로 메시지를 라우팅하여 클라이언트에 라우터를 통해 큐에 대한 액세스 권한을 제공할 수 있습니다. 이 시나리오에서는 클라이언트가 라우터에 연결하여 메시지를 보내고 수신하며 라우터는 메시지를 브로커 큐로 또는 에서 라우팅합니다.

메시지를 단일 브로커에서 호스팅되는 큐로 라우팅하거나 여러 브로커에 분산된 분할된 큐로 메시지를 라우팅할 수 있습니다.

절차

  1. /etc/qpid-dispatch/qdrouterd.conf 구성 파일에서 브로커 큐의 waypoint 주소를 추가합니다.

    waypoint 주소는 메시지를 라우팅하려는 브로커의 큐를 식별합니다. 이 예제에서는 my_queue 큐에 대한 waypoint 주소를 추가합니다.

    address {
        prefix: my_queue
        waypoint: yes
    }
    접두사 | 패턴

    메시지를 보낼 브로커 큐와 일치하는 주소 접두사 또는 패턴입니다. 주소의 정확한 주소 또는 시작 세그먼트와 일치하도록 접두사를 지정할 수 있습니다. 또는 와일드카드를 사용하여 주소와 일치하는 패턴을 지정할 수 있습니다.

    접두사 는 정확한 주소 또는 . 또는 / 문자로 구분된 주소 내의 시작 세그먼트와 일치합니다. 예를 들어 my_address 접두사는 my_address.1 주소뿐만 아니라 my_address.1my_address/1 과 일치합니다. 그러나 my_address1 과 일치하지 않습니다.

    패턴은 패턴에 해당하는 주소와 일치합니다. 패턴은 . 또는 / 문자로 구분된 일련의 단어입니다. 와일드카드 문자를 사용하여 단어를 나타낼 수 있습니다. * 문자는 정확히 하나의 단어와 일치하며 # 문자는 0개 이상의 단어와 일치합니다.

    *# 문자는 와일드카드로 예약되어 있습니다. 따라서 메시지 주소에 사용해서는 안 됩니다.

    주소 패턴 생성에 대한 자세한 내용은 12.1.5절. “주소 패턴 일치” 을 참조하십시오.

    참고

    /# 을 추가하여 접두사 값을 패턴으로 변환할 수 있습니다. 예를 들어 a/b/c 접두사는 a/b/c/# 패턴과 동일합니다.

    waypoint
    라우터가 이 주소로 전송된 메시지를 waypoint로 처리하도록 이 속성을 yes 로 설정합니다.
  2. 라우터를 브로커에 연결합니다.

    1. 해당 연결이 없는 경우 브로커에 발신 연결을 추가합니다.

      대기열이 여러 브로커에 걸쳐 분할되는 경우 각 브로커에 대한 연결을 추가해야 합니다. 자세한 내용은 8.3절. “외부 AMQP 컨테이너에 연결”의 내용을 참조하십시오.

      참고

      브로커 연결에 실패하면 AMQ Interconnect에서 사용 가능한 대체 대상에 대한 연결 재설정 및 리디렉션 메시지 전달을 자동으로 시도합니다. 그러나 일부 발송은 RELEASED 또는 MODIFIED 분산을 사용하여 발신자에게 반환될 수 있습니다. 따라서 고객이 이러한 전달을 적절히 처리할 수 있는지 확인해야 합니다(일반적으로 이를 재전송하여).

    2. 메시지를 브로커 큐에 보내려면 브로커 큐에 발신 자동 링크를 추가합니다.

      대기열이 여러 브로커에 걸쳐 분할되는 경우 각 브로커에 대해 발신 자동 링크를 추가해야 합니다.

      이 예제에서는 메시지를 브로커 대기열에 보내도록 발신 자동 링크를 구성합니다.

      autoLink {
          address: my_queue
          connection: my_broker
          direction: out
          ...
      }
      address
      브로커 큐의 주소입니다. autolink가 생성되면 이 주소에 연결됩니다.
      externalAddress
      브로커 큐의 선택적 대체 주소입니다. 브로커 큐에서 보낸 사람이 사용하는 주소와 다른 주소를 사용해야 하는 경우 외부 주소를 사용합니다. 이 시나리오에서는 발신자가 메시지를 주소 주소로 보낸 다음 라우터는 외부Address 주소로 표시되는 브로커 큐로 라우팅합니다.
      connection | containerID
      라우터가 브로커에 연결하는 방법 발신 연결(연결) 또는 브로커의 컨테이너 ID(containerID)를 지정할 수 있습니다.
      direction
      이 속성을 out 으로 설정하여 이 autolink가 라우터에서 브로커로 메시지를 보낼 수 있도록 지정합니다.

      추가 속성에 대한 자세한 내용은 qdrouterd.conf 매뉴얼 페이지의 autoLink 를 참조하십시오.

  3. 브로커 큐에서 메시지를 받으려면 브로커 큐에서 들어오는 자동 링크를 추가합니다.

    대기열이 여러 브로커에 걸쳐 분할되는 경우 각 브로커에 대해 발신 자동 링크를 추가해야 합니다.

    이 예제에서는 브로커 큐에서 메시지를 수신하도록 들어오는 자동 링크를 구성합니다.

    autoLink {
        address: my_queue
        connection: my_broker
        direction: in
        ...
    }
    address
    브로커 큐의 주소입니다. autolink가 생성되면 이 주소에 연결됩니다.
    externalAddress
    브로커 큐의 선택적 대체 주소입니다. 브로커 큐에 수신자가 사용하는 주소와 다른 주소가 있어야 하는 경우 외부 주소를 사용합니다. 이 시나리오에서는 수신자가 주소 주소에서 메시지를 수신하고 라우터는 externalAddress 주소로 표시되는 브로커 큐에서 메시지를 검색합니다.
    connection | containerID
    라우터가 브로커에 연결하는 방법 발신 연결(연결) 또는 브로커의 컨테이너 ID(containerID)를 지정할 수 있습니다.
    direction
    이 속성을 in 으로 설정하여 이 autolink가 브로커에서 라우터로 메시지를 수신할 수 있도록 지정합니다.

    추가 속성에 대한 자세한 내용은 qdrouterd.conf 매뉴얼 페이지의 autoLink 를 참조하십시오.

12.1.4.3. 전달할 수 없는 메시지 처리

대체 대상 을 가리키는 자동 링크를 구성하여 주소에 대한 전달 불가능한 메시지를 처리합니다. 대체 대상(예: 브로커의 큐)은 모든 소비자에게 직접 라우팅할 수 없는 메시지를 저장합니다.

일반적인 메시지 전달 중에 AMQ Interconnect는 라우터 네트워크에 연결된 사용자에게 메시지를 전달합니다. 그러나 소비자에 연결할 수 없는 경우 메시지에 주소용으로 구성된 대체 대상(백배 대상을 가리키는 자동 링크가 활성화된 경우)으로 전환됩니다. 소비자가 다시 연결하고 다시 연결할 수 있게 되면 폴백 대상에 저장된 메시지가 수신됩니다.

참고

AMQ Interconnect는 폴백 대상에 저장된 메시지의 원래 전달 순서를 유지합니다. 그러나 소비자가 다시 연결되면 큐가 드레이닝되는 동안 생성된 모든 새 메시지는 폴백 대상에 저장된 메시지와 인터리브됩니다.

사전 요구 사항

절차

이 절차에서는 주소에 대한 폴백을 활성화하고 해당 주소에 대한 대체 대상을 제공하는 브로커 큐에 연결하도록 자동 링크를 구성합니다.

  1. /etc/qpid-dispatch/qdrouterd.conf 구성 파일에서 주소에 대한 대체 대상을 활성화합니다.

    address {
        prefix: my_address
        enableFallback: yes
    }
  2. 브로커의 큐에 발신 자동 링크를 추가합니다.

    폴백을 활성화한 주소의 경우 메시지가 모든 소비자에게 라우팅할 수 없는 경우 라우터는 이 자동 링크를 사용하여 브로커의 큐로 메시지를 보냅니다.

    autoLink {
        address: my_address.2
        direction: out
        connection: my_broker
        fallback: yes
    }
  3. 라우터가 연결된 소비자에게 대기 중인 메시지를 라우터 네트워크에 연결하는 즉시 전송하려면 들어오는 자동 링크를 추가합니다.

    소비자가 라우터에 연결하는 즉시 브로커 큐에 저장된 메시지를 프로듀서에서 보낸 새 메시지와 함께 수신합니다. 대기 중인 메시지의 원래 전달 순서가 보존되지만 대기 중인 메시지는 새 메시지와 인터리빙됩니다.

    들어오는 자동 링크를 추가하지 않으면 메시지는 브로커에 저장되지만 라우터에 연결할 때 소비자에게 전송되지 않습니다.

    autoLink {
        address: my_address.2
        direction: in
        connection: my_broker
        fallback: yes
    }

12.1.5. 주소 패턴 일치

일부 라우터 구성 시나리오에서는 패턴 일치를 사용하여 단일 리터럴 주소가 아닌 주소 범위와 일치해야 할 수 있습니다. 주소 패턴은 패턴에 해당하는 모든 주소와 일치합니다.

주소 패턴은 . 또는 / 문자로 구분된 일련의 토큰(일반적으로 단어)입니다. 또한 다음과 같이 단어를 나타내는 특수 와일드카드 문자를 포함할 수 있습니다.

  • * 정확히 한 단어를 나타냅니다.
  • 0 이상의 단어를 나타냅니다.Represents zero or more words.

예 12.1. 주소 패턴

이 주소에는 / 구분 기호로 구분된 두 개의 토큰이 포함되어 있습니다.

my/address

예 12.2. 와일드카드가 있는 주소 패턴

이 주소에는 세 개의 토큰이 있습니다. * 주소와 주소 사이에 있을 수 있는 단일 단어를 나타내는 와일드카드입니다.

my/*/address

다음 표에서는 일부 주소 패턴과 일치하는 주소의 예를 보여줍니다.

이 패턴은...matches…​하지만, 그렇지 않습니다.

news/*

news/europe

news/usa

news

news/usa/sports

news/#

news

news/europe

news/usa/sports

유럽

usa

news/europe/#

news/europe

news/europe/sports

news/europe/politics/fr

news/usa

유럽

news/*/sports

news/europe/sports

news/usa/sports

news

news/europe/fr/sports

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.