16.4. 메시지 재배포 활성화


브로커 클러스터에서 온디맨드 메시지 부하 분산을 사용하는 경우 메시지를 재배포 하여 메시지를 사용하는 소비자가 없는 큐의 "stuck"이되지 않도록 메시지 재배포를 구성할 수 있습니다.

이 섹션에서는 다음에 대한 정보를 제공합니다.

16.4.1. 메시지 재배포 이해

브로커 클러스터는 로드 밸런싱을 사용하여 클러스터 전체에 메시지 로드를 배포합니다. 클러스터 연결에서 부하 분산을 구성할 때 message-load-balancingON_DEMAND 로 설정하면 브로커는 소비자와 일치하는 다른 브로커에게만 메시지를 전달합니다. 이 동작을 사용하면 메시지에서 메시지를 사용하는 소비자가 없는 대기열로 이동하지 않습니다. 그러나 메시지가 브로커로 전송된 후 큐에 연결된 소비자가 브로커로 전달되면 해당 메시지는 큐에서 "stuck"되고 사용되지 않습니다. 이 문제는 종종 별명( starvation )이라고 합니다.

메시지 재배포는 소비자가 일치하는 클러스터의 브로커가 없는 큐에서 메시지를 자동으로 다시 배포함으로써 시작할 수 없습니다.

16.4.1.1. 메시지 필터를 사용하여 메시지 재배포의 제한

메시지 재배포 는 소비자가 필터(selector 라고도 함) 사용을 지원하지 않습니다. 필터가 있는 소비자의 일반적인 사용 사례는 상관 관계 ID를 사용하는 요청 시 패턴입니다. 예를 들어 다음 시나리오를 고려하십시오.

  1. brokerAbrokerB 의 두 브로커 클러스터가 있습니다. 각 브로커는 0 으로 설정된 redistribution-delay 로 구성되며 ON_DEMAND 로 설정된 message-load-balancing 를 설정합니다.
  2. brokerAbrokerB 에는 각각 myQueue 라는 큐가 있습니다.
  3. 요청을 기반으로 생산자는 brokerA 에서 myQueue 를 대기열에 전송하도록 라우팅되는 메시지를 보냅니다. 메시지에는 myCorrelID 라는 상관 관계 ID 속성이 있으며, 값은 10 입니다.
  4. 소비자가 myCorrelID=5 필터를 사용하여 brokerA 의 큐 myQueue 에 연결합니다. 이 필터는 메시지의 상관 관계 ID 값과 일치하지 않습니다.
  5. 다른 소비자는 myCorrelID=10 필터를 사용하여 brokerB 에서 myQueue 를 대기열에 연결합니다. 이 필터는 메시지의 상관 관계 ID 값과 일치합니다.

    이 경우 brokerB 에 있는 소비자 필터가 메시지와 일치하더라도 myQueue 의 소비자가 brokerA 에 존재하기 때문에 메시지가 brokerA에서 brokerB 로 재배포 되지 않습니다.

이전 시나리오에서는 요청이 생산자로 전송되기 전에 소비자를 생성하여 의도한 클라이언트가 메시지를 수신하도록 할 수 있습니다. 메시지는 메시지의 상관 관계 ID와 일치하는 필터를 사용하여 사용자에게 즉시 라우팅됩니다. 재배포가 필요하지 않습니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.