검색

부록 A. 수락 및 커넥터 구성 매개 변수

download PDF

아래 표에는 Netty 네트워크 연결을 구성하는 데 사용되는 몇 가지 사용 가능한 매개 변수가 자세히 설명되어 있습니다. 매개 변수 및 해당 값은 연결 문자열의 URI에 추가됩니다.Parameters and their values are appended to the URI of the connection string. 자세한 내용은 네트워크 연결에서 허용자 및 커넥터 구성 을 참조하십시오. 각 표에는 허용자 또는 커넥터와 함께 사용할 수 있는지 여부에 따라 이름과 메모에 따라 매개 변수가 나열되어 있습니다. 예를 들어 일부 매개변수는 수락자에서만 사용할 수 있습니다.

참고

모든 Netty 매개변수는 org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants 에 정의되어 있습니다. 소스 코드는 고객 포털에서 다운로드할 수 있습니다.

표 A.1. Netty TCP 매개 변수
매개변수with…​ 사용설명

batchDelay

둘 다

수락자 또는 커넥터에 패킷을 작성하기 전에 최대 batchDelay 밀리초에 대한 쓰기를 배치하도록 브로커를 구성할 수 있습니다. 이렇게 하면 작은 메시지의 전체 처리량이 증가할 수 있습니다. 따라서 메시지 전송에 대한 평균 대기 시간이 늘어납니다. 기본값은 0 ms입니다.

connectionsAllowed

수락자

수락자가 허용할 연결 수를 제한합니다. 이 제한에 도달하면 DEBUG 수준 메시지가 로그에 발행되고 연결이 거부됩니다. 사용 중인 클라이언트 유형에 따라 연결이 거부될 때 발생하는 상황이 결정됩니다.

directDeliver

둘 다

메시지가 서버에 도착하고 대기 소비자에게 전달되면 기본적으로 배달은 메시지가 도착한 것과 동일한 스레드에서 수행됩니다. 이렇게 하면 상대적으로 적은 메시지와 소비자 수가 적은 환경에서 적절한 대기 시간을 제공할 수 있지만, 특히 멀티코어 시스템에서 전체 처리량과 확장성에 따라 비용이 많이 듭니다. 대기 시간을 줄이고 처리량이 감소할 수 있는 경우 truedirectDeliver 에 기본값을 사용할 수 있습니다. 대기 시간에 대해 약간의 추가 공격을 원하지만 처리량이 가장 높은 경우 directDeliverfalse 로 설정해야 합니다.

handshake-timeout

수락자

인증되지 않은 클라이언트가 많은 수의 연결을 열고 이를 열어 두지 않도록 합니다. 각 연결에는 파일 처리가 필요하므로 다른 클라이언트에서 사용할 수 없는 리소스를 사용합니다.

이 제한 시간은 연결에서 인증하지 않고 리소스를 사용할 수 있는 시간을 제한합니다. 연결이 인증되면 리소스 제한 설정을 사용하여 리소스 사용을 제한할 수 있습니다.

기본값은 10 초로 설정됩니다. 다른 정수 값으로 설정할 수 있습니다. 0 또는 음수 정수로 설정하여 이 옵션을 해제할 수 있습니다.

timeout 값을 편집한 후 브로커를 다시 시작해야 합니다.

localAddress

커넥터

원격 주소에 연결할 때 클라이언트가 사용할 로컬 주소를 지정합니다. 일반적으로 Application Server에서 사용되거나 embedded를 실행하여 아웃바운드 연결에 사용되는 주소를 제어할 때 사용됩니다. local-address가 설정되지 않은 경우 커넥터는 사용 가능한 로컬 주소를 사용합니다.

localPort

커넥터

원격 주소에 연결할 때 클라이언트가 사용할 로컬 포트를 지정합니다. 일반적으로 Application Server에서 사용되거나 embedded를 실행하여 아웃바운드 연결에 사용되는 포트를 제어할 때 사용됩니다. 기본값을 사용하는 경우 0이면 커넥터가 시스템에서 임시 포트를 선택하도록 합니다. 유효한 포트는 0에서 65535까지입니다.

nioRemotingThreads

둘 다

NIO를 사용하도록 설정한 경우 브로커는 기본적으로 들어오는 패킷을 처리하기 위해 Runtime.getRuntime().availableProcessors() 에서 보고한 대로 코어 수(또는 하이퍼 스레딩) 수와 동일한 수의 스레드를 사용합니다. 이 값을 재정의하려면 이 매개변수를 지정하여 스레드 수를 설정할 수 있습니다. 이 매개 변수의 기본값은 -1 이며, 즉 Runtime.getRuntime().availableProcessors() * 3에서 파생 된 값을 사용합니다.

tcpNoDelay

둘 다

만약 이것이 사실 이라면 Nagle의 알고리즘 은 비활성화됩니다. Java(클라이언트) 소켓 옵션입니다. 기본값은 true입니다.

tcpReceiveBufferSize

둘 다

TCP 수신 버퍼의 크기(▂ 바이트)를 결정합니다.Determines the size of the TCP receive buffer in bytes. 기본값은 32768 입니다.

tcpSendBufferSize

둘 다

TCP 전송 버퍼의 크기를 바이트 단위로 결정합니다. 기본값은 32768 입니다.

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

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

buffer_size = bandwidth * RTT.

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

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

표 A.2. Netty HTTP 매개변수
매개변수with…​ 사용설명

httpClientIdleTime

수락자

연결을 활성 상태로 유지하기 위해 빈 HTTP 요청을 보내기 전에 클라이언트가 유휴 상태일 수 있는 시간입니다.

httpClientIdleScanPeriod

수락자

유휴 클라이언트에 대해 검사하는 빈도(밀리초)입니다.

httpEnabled

수락자

더 이상 필요하지 않습니다. 단일 포트를 지원하는 경우 브로커는 이제 HTTP가 사용되고 있는지 자동으로 탐지하고 자체적으로 구성합니다.

httpRequiresSessionId

둘 다

true 인 경우 클라이언트는 첫 번째 호출 후 세션 ID를 수신할 때까지 기다립니다. HTTP 커넥터가 서블릿에 연결할 때 사용됩니다. 이 구성은 권장되지 않습니다.

httpResponseTime

수락자

연결이 활성 상태로 유지하기 위해 서버가 빈 HTTP 응답을 보내기 전에 대기할 수 있는 시간입니다.

httpServerScanPeriod

수락자

응답이 필요한 클라이언트를 스캔하는 빈도(밀리초)입니다.

표 A.3. Netty TLS/SSL 매개변수
매개변수with…​ 사용설명

enabledCipherSuites

둘 다

SSL 통신에 사용되는 암호화 제품군의 쉼표로 구분된 목록입니다. 기본값은 비어 있습니다. 즉 JVM의 기본값이 사용됩니다.

enabledProtocols

둘 다

SSL 통신에 사용되는 프로토콜의 쉼표로 구분된 목록입니다. 기본값은 비어 있습니다. 즉 JVM의 기본값이 사용됩니다.

forceSSLParameters

커넥터

커넥터에서 매개변수로 설정된 SSL 설정이 JVM 시스템 속성( javax.net.ssl 및 AMQ Broker 시스템 속성 포함) 대신 사용되어 이 커넥터의 SSL 컨텍스트를 구성할지 여부를 제어합니다.

유효한 값은 true 또는 false입니다. 기본값은 false입니다.

keyStorePassword

둘 다

허용자에서 사용하는 경우 이는 서버 측 키 저장소의 암호입니다.

커넥터에 사용되는 경우 클라이언트 측 키 저장소의 암호입니다. 이는 양방향 SSL(즉, 상호 인증)을 사용하는 경우에만 커넥터와 관련이 있습니다. 이 값은 서버에서 구성할 수 있지만 클라이언트에서 다운로드하여 사용합니다. 클라이언트가 서버에서 설정한 암호와 다른 암호를 사용해야 하는 경우 customary javax.net.ssl.keyStorePassword 시스템 속성 또는 ActiveMQ-specific org.apache.ssl.keyStorePassword 시스템 속성을 사용하여 서버 측 설정을 덮어쓸 수 있습니다. ActiveMQ별 시스템 속성은 클라이언트의 다른 구성 요소가 이미 표준인 Java 시스템 속성을 사용하는 경우 유용합니다.

keyStorePath

둘 다

수락자에서 사용하는 경우 이는 서버의 SSL 키 저장소의 경로입니다(유사 기관의 자체 서명 또는 서명 여부).

커넥터에서 사용하는 경우 클라이언트 인증서를 보유하는 클라이언트 측 SSL 키 저장소의 경로입니다. 이는 양방향 SSL(즉, 상호 인증)을 사용하는 경우에만 커넥터와 관련이 있습니다. 이 값은 서버에 구성되어 있지만 클라이언트에서 다운로드하여 사용합니다. 클라이언트가 서버에서 설정된 것과 다른 경로를 사용해야 하는 경우 customary javax.net.ssl.keyStore 시스템 속성 또는 ActiveMQ 특정 org.apache.ssl.keyStore 시스템 속성을 사용하여 서버 측 설정을 재정의할 수 있습니다. ActiveMQ별 시스템 속성은 클라이언트의 다른 구성 요소가 이미 표준인 Java 시스템 속성을 사용하는 경우 유용합니다.

needClientAuth

수락자

이 수락에 연결하는 클라이언트에 두방향 SSL이 필요하다는 것을 알려줍니다. 유효한 값은 true 또는 false입니다. 기본값은 false입니다.

sslEnabled

둘 다

SSL을 활성화하려면 true 여야 합니다. 기본값은 false입니다.

trustManagerFactoryPlugin

둘 다

org.apache.activemq.artemis.api.core.TrustManagerFactoryPlugin 을 구현하는 클래스의 이름을 정의합니다.

이는 javax.net.ssl.TrustManagerFactory 를 반환하는 단일 메서드가 있는 간단한 인터페이스입니다. TrustManagerFactory 는 기본 javax.net.ssl.SSLContext 가 초기화될 때 사용됩니다. 이를 통해 브로커와 클라이언트의 신뢰할 수 있는 사용자 또는 사용자를 세부적으로 지정할 수 있습니다.

trustManagerFactoryPlugin 값은 신뢰 관리자(즉, trustAll,truststoreProvider,truststorePath,truststorePassword, crlPath)에 적용되는 모든 다른 SSL 매개변수보다 우선합니다.

지정된 플러그인을 브로커의 Java classpath에 배치해야 합니다. 기본적으로 classpath의 일부이므로 < broker_instance_dir> /lib 디렉터리를 사용할 수 있습니다.

trustStorePassword

둘 다

수락자에서 사용하는 경우 이는 서버 측 신뢰 저장소의 암호입니다. 이는 양방향 SSL(즉, 상호 인증)을 사용하는 경우에만 동의어와 관련이 있습니다.

커넥터에 사용하는 경우 클라이언트 측 truststore의 암호입니다. 이 값은 서버에서 구성할 수 있지만 클라이언트에서 다운로드하여 사용합니다. 클라이언트에서 서버에서 설정한 암호와 다른 암호를 사용해야 하는 경우 customary javax.net.ssl.trustStorePassword 시스템 속성 또는 ActiveMQ-specific org.apache.ssl.trustStorePassword 시스템 속성을 사용하여 서버 측 설정을 덮어쓸 수 있습니다. ActiveMQ별 시스템 속성은 클라이언트의 다른 구성 요소가 이미 표준인 Java 시스템 속성을 사용하는 경우 유용합니다.

sniHost

둘 다

수락자에서 사용되는 경우 sniHost 는 들어오는 SSL 연결의 server_name 확장자를 일치시키는 데 사용되는 정규식입니다(이 확장에 대한 자세한 내용은 https://tools.ietf.org/html/rfc6066참조). 이름이 일치하지 않으면 수락자에게 대한 연결이 거부됩니다. 이 경우 WARN 메시지가 기록됩니다.

들어오는 연결에 server_name 확장이 포함되지 않으면 연결이 허용됩니다.

커넥터에서 사용하는 경우 sniHost 값은 SSL 연결의 server_name 확장에 사용됩니다.

sslProvider

둘 다

JDKOPENSSL 간에 SSL 공급자를 변경하는 데 사용됩니다. 기본값은 JDK 입니다.

OPENSSL 로 설정된 경우 classpath에 netty-tcnative 를 추가하여 기본적으로 설치된 OpenSSL을 사용할 수 있습니다.

이 옵션은 OpenSSL을 통해 지원되지만 JDK 공급자를 통해 지원되지 않는 특수 암호suite-elliptic 곡선 조합을 사용하려는 경우 유용할 수 있습니다.

trustStorePath

둘 다

수락자에서 사용하는 경우 이는 서버가 신뢰하는 모든 클라이언트의 키를 보유하는 서버 측 SSL 키 저장소의 경로입니다. 이는 양방향 SSL(즉, 상호 인증)을 사용하는 경우에만 동의어와 관련이 있습니다.

커넥터에서 사용하는 경우 이 경로는 클라이언트가 신뢰하는 모든 서버의 공개 키를 보유하는 클라이언트 측 SSL 키 저장소의 경로입니다. 이 값은 서버에서 구성할 수 있지만 클라이언트에서 다운로드하여 사용합니다. 클라이언트가 서버에서 설정된 것과 다른 경로를 사용해야 하는 경우 customary javax.net.ssl.trustStore 시스템 속성 또는 ActiveMQ 특정 org.apache.ssl.trustStore 시스템 속성을 사용하여 서버 측 설정을 덮어쓸 수 있습니다. ActiveMQ별 시스템 속성은 클라이언트의 다른 구성 요소가 이미 표준인 Java 시스템 속성을 사용하는 경우 유용합니다.

useDefaultSslContext

커넥터

커넥터가 클라이언트에서 프로그래밍 방식으로 설정할 수 있는 "기본" SSL 컨텍스트( SSLContext.getDefault()를 통해)를 사용하도록 허용합니다( SSLContext.setDefault(SSLContext)).

이 매개변수가 true 로 설정된 경우 sslEnabled 를 제외한 다른 모든 SSL 관련 매개변수는 무시됩니다. 유효한 값은 true 또는 false입니다. 기본값은 false입니다.

verifyHost

둘 다

커넥터에서 사용하는 경우 서버의 SSL 인증서의 CN 또는 주체 대체 이름 값이 일치하는지 확인하기 위해 연결된 호스트 이름과 비교됩니다. 이 기능은 단방향 SSL과 양방향 SSL 모두에 유용합니다.

수락자에 사용되는 경우 연결 클라이언트의 SSL 인증서의 CN 또는 Subject Alternative Name 값은 해당 호스트 이름과 비교하여 해당 호스트 이름이 일치하는지 확인합니다. 이 기능은 양방향 SSL에만 유용합니다.

유효한 값은 true 또는 false입니다. 커넥터의 경우 기본값은 true 이고 수락자의 경우 false 입니다.

wantClientAuth

수락자

이 수락에 연결하는 클라이언트에 두방향 SSL이 요청되었지만 필수는 아님을 알려줍니다. 유효한 값은 true 또는 false입니다. 기본값은 false입니다.

속성 needClientAuth 가 true로 설정된 경우 해당 속성이 우선하며ClientAuth가 무시됩니다.If the property needClientAuth is set to true, then that property takes precedence and wantClientAuth is ignored.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.