3장. 네트워크 연결: 프로토콜


AMQ Broker에는 플러그형 프로토콜 아키텍처가 있으므로 네트워크 연결을 위해 하나 이상의 프로토콜을 쉽게 활성화할 수 있습니다.

브로커는 다음 프로토콜을 지원합니다.

참고

위의 프로토콜 외에도 브로커는 "Core Protocol"으로 알려진 자체 네이티브 프로토콜을 지원합니다. 이전 버전의 이 프로토콜을 "HornetQ"라고 하며 Red Hat JBoss Enterprise Application Platform에서 사용되었습니다.

3.1. 프로토콜을 사용하도록 네트워크 연결 구성

프로토콜을 사용하기 전에 네트워크 연결과 연결해야 합니다. 네트워크 연결: 네트워크 연결을 만들고 구성하는 방법에 대한 자세한 내용은 Acceptors 및 Connectors 를 참조하십시오. BROKER_INSTANCE_DIR/etc/broker.xml 파일에 이미 정의된 몇 가지 연결이 포함되어 있습니다. 편의를 위해 AMQ Broker에는 지원되는 각 프로토콜에 대한 허용자와 모든 프로토콜을 지원하는 기본 허용자가 포함됩니다.

기본 허용자 개요

다음은 broker.xml 구성 파일에 기본적으로 포함된 수락자입니다.

<configuration>
  <core>
    ...
    <acceptors>

      <!-- All-protocols acceptor -->
      <acceptor name="artemis">tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300</acceptor>

      <!-- AMQP Acceptor. Listens on default AMQP port for AMQP traffic -->
      <acceptor name="amqp">tcp://0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpLowCredits=300</acceptor>

      <!-- STOMP Acceptor -->
      <acceptor name="stomp">tcp://0.0.0.0:61613?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=STOMP;useEpoll=true</acceptor>

      <!-- HornetQ Compatibility Acceptor. Enables HornetQ Core and STOMP for legacy HornetQ clients. -->
      <acceptor name="hornetq">tcp://0.0.0.0:5445?anycastPrefix=jms.queue.;multicastPrefix=jms.topic.;protocols=HORNETQ,STOMP;useEpoll=true</acceptor>

      <!-- MQTT Acceptor -->
      <acceptor name="mqtt">tcp://0.0.0.0:1883?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=MQTT;useEpoll=true</acceptor>

    </acceptors>
    ...
  </core>
</configuration>

지정된 네트워크 연결에서 프로토콜을 활성화하는 유일한 요구 사항은 수락자의 URI에 protocols 매개변수를 추가하는 것입니다. 매개 변수의 값은 쉼표로 구분된 프로토콜 이름 목록이어야 합니다. protocol 매개 변수가 URI에서 생략되면 모든 프로토콜이 활성화됩니다.

예를 들어 AMQP 프로토콜을 사용하여 포트 3232에서 메시지를 수신하는 수락자를 생성하려면 다음 단계를 따르십시오.

  1. 구성 파일 BROKER_INSTANCE_DIR/etc/broker.xml을 엽니다.
  2. < acceptors> 스탠자에 다음 행을 추가합니다.
<acceptor name="ampq">tcp://0.0.0.0:3232?protocols=AMQP</acceptor>

기본 허용자의 추가 매개변수

최소 허용자 구성에서 프로토콜을 연결 URI의 일부로 지정합니다. 그러나 broker.xml 구성 파일의 기본 허용 항목에는 몇 가지 추가 매개 변수가 구성되어 있습니다. 다음 표에서는 기본 허용자에 대해 구성된 추가 매개 변수를 자세히 설명합니다.

수락자(s)매개변수설명

all-protocols acceptor

AMQP

STOMP

tcpSendBufferSize

TCP 전송 버퍼의 크기(바이트)입니다. 기본값은 32768 입니다.

tcpReceiveBufferSize

TCP 수신 버퍼의 크기(바이트)입니다. 기본값은 32768 입니다.

TCP 버퍼 크기는 네트워크의 대역폭 및 대기 시간에 따라 조정되어야 합니다.

요약하면 TCP 전송/받기 버퍼 크기는 다음과 같이 계산되어야 합니다.

buffer_size = bandwidth * RTT.

대역폭이 초당 바이트 단위이고 네트워크 왕복 시간(RTT)은 초 단위입니다. RTT는 ping 유틸리티를 사용하여 쉽게 측정할 수 있습니다.

빠른 네트워크의 경우 버퍼 크기를 기본값에서 늘릴 수 있습니다.

all-protocols acceptor

AMQP

STOMP

HornetQ

MQTT

useEpoll

지원하는 시스템(Linux)을 사용하는 경우 Netty epoll을 사용하십시오. Netty 네이티브 전송은 NIO 전송보다 더 나은 성능을 제공합니다. 이 옵션의 기본값은 true 입니다. 옵션을 false 로 설정하면 NIO가 사용됩니다.

all-protocols acceptor

AMQP

amqpCredits

총 메시지 크기에 관계없이 AMQP 생산자가 보낼 수 있는 최대 메시지 수입니다. 기본값은 1000 입니다.

AMQP 메시지 흐름을 제어하는 데 크레딧을 사용하는 방법에 대한 자세한 내용은 10.2.3절. “AMQP 메시지 차단” 을 참조하십시오.

all-protocols acceptor

AMQP

amqpLowCredits

브로커가 생산자 크레딧을 보충하는 임계값을 줄입니다. 기본값은 300 입니다. 생산자가 이 임계값에 도달하면 브로커는 프로듀서에게 충분한 크레딧을 전송하여mq pCredits 값을 복원합니다.

AMQP 메시지 흐름을 제어하는 데 크레딧을 사용하는 방법에 대한 자세한 내용은 10.2.3절. “AMQP 메시지 차단” 을 참조하십시오.

HornetQ 호환성 수락기

anycastPrefix

클라이언트가 anycast멀티캐스트 를 모두 사용하는 주소에 연결할 때 모든cast 라우팅 유형을 지정하는 데 사용하는 접두사입니다. 기본값은 jms.queue 입니다.

주소에 연결할 때 클라이언트가 라우팅 유형을 지정할 수 있도록 접두사를 구성하는 방법에 대한 자세한 내용은 4.6절. “수락자 구성에 라우팅 유형 추가” 을 참조하십시오.

multicastPrefix

클라이언트가 anycast멀티캐스트를 모두 사용하는 주소에 연결할 때 멀티캐스트 라우팅 유형을 지정하는 데 사용하는 접두사입니다. 기본값은 jms.topic 입니다.

주소에 연결할 때 클라이언트가 라우팅 유형을 지정할 수 있도록 접두사를 구성하는 방법에 대한 자세한 내용은 4.6절. “수락자 구성에 라우팅 유형 추가” 을 참조하십시오.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.