Red Hat Training

A Red Hat training course is available for Red Hat Fuse

12.4. Undertow 런타임 구성

12.4.1. 개요

Undertow 런타임은 분리된 끝점을 사용하여 HTTP 서비스 공급자 및 HTTP 소비자가 사용합니다. 런타임의 스레드 풀을 구성할 수 있으며, Undertow 런타임을 통해 HTTP 서비스 공급자에 대한 여러 보안 설정도 설정할 수 있습니다.

12.4.2. Maven 종속성

Apache Maven을 빌드 시스템으로 사용하는 경우 프로젝트의 pom.xml 파일에 다음 종속성을 포함하여 프로젝트에 Undertow 런타임을 추가할 수 있습니다.

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-transports-http-undertow</artifactId>
    <version>${cxf-version}</version>
</dependency>

12.4.3. 네임스페이스

Undertow 런타임을 구성하는 데 사용되는 요소는 네임스페이스 http://cxf.apache.org/transports/http-undertow/configuration 에 정의되어 있습니다. Undertow 구성 요소를 사용하려면 예 12.14. “Undertow 런타임 구성 네임스페이스” 에 표시된 줄을 끝점 구성 파일의 빈 요소에 추가해야 합니다. 이 예에서 네임스페이스에는 httpu 접두사가 할당됩니다. 또한 구성 요소의 네임스페이스를 xsi:schemaLocation 속성에 추가해야 합니다.

예 12.14. Undertow 런타임 구성 네임스페이스

<beans ...
       xmlns:httpu="http://cxf.apache.org/transports/http-undertow/configuration"
       ...
       xsi:schemaLocation="...
                           http://cxf.apache.org/transports/http-undertow/configuration
                              http://cxf.apache.org/schemas/configuration/http-undertow.xsd
                          ...">

12.4.4. engine-factory 요소

httpu:engine-factory 요소는 애플리케이션에서 사용하는 Undertow 런타임을 구성하는 데 사용되는 루트 요소입니다. 구성 중인 Undertow 인스턴스를 관리하는 버스 의 이름이 값인 단일 필수 속성 버스가 있습니다.

참고

값은 일반적으로 기본 버스 인스턴스의 이름인 cxf 입니다.

http:engine-factory 요소에는 Undertow 런타임 팩토리에서 인스턴스화한 HTTP 포트를 구성하는 데 사용되는 정보가 포함된 세 개의 자식이 있습니다. 어린이는 표 12.7. “Undertow Runtime Factory 구성을 위한 요소” 에 설명되어 있습니다.

표 12.7. Undertow Runtime Factory 구성을 위한 요소

요소설명

httpu:engine

특정 Undertow 런타임 인스턴스에 대한 구성을 지정합니다. “엔진 요소” 을 참조하십시오.

httpu:identifiedTLSServerParameters

HTTP 서비스 공급자를 보호하기 위해 재사용 가능한 속성 세트를 지정합니다. 속성 집합을 참조할 수 있는 고유 식별자를 지정하는 단일 속성 id 가 있습니다.

httpu:identifiedThreadingParameters

Undertow 인스턴스의 스레드 풀을 제어하기 위해 재사용 가능한 속성 세트를 지정합니다. 속성 집합을 참조할 수 있는 고유 식별자를 지정하는 단일 속성 id 가 있습니다.

“스레드 풀 구성” 을 참조하십시오.

12.4.5. 엔진 요소

httpu:engine 요소는 Undertow 런타임의 특정 인스턴스를 구성하는 데 사용됩니다. 여기에는 Undertow 인스턴스에서 관리하는 포트 의 수를 지정하는 단일 속성 port 가 있습니다.

참고

port 특성에 값을 0 으로 지정할 수 있습니다. 포트 특성이 0 으로 설정된 httpu:engine 요소에 지정된 모든 스레드 속성은 명시적으로 구성되지 않은 모든 Undertow 리스너의 구성으로 사용됩니다.

httpu:engine 요소에는 두 개의 하위 항목이 있을 수 있습니다. 하나는 보안 속성을 구성하고 다른 하나는 Undertow 인스턴스의 스레드 풀을 구성하는 데 사용됩니다. 각 유형의 구성에 대해 구성 정보를 직접 제공하거나 상위 httpu:engine-factory 요소에 정의된 구성 속성 집합에 대한 참조를 제공할 수 있습니다.

구성 속성을 제공하는 데 사용되는 하위 요소는 표 12.8. “Undertow 런타임 인스턴스 구성을 위한 요소” 에 설명되어 있습니다.

표 12.8. Undertow 런타임 인스턴스 구성을 위한 요소

요소설명

httpu:tlsServerParameters

특정 Undertow 인스턴스에 사용되는 보안을 구성하기 위한 속성 세트를 지정합니다.

httpu:tlsServerParametersRef

identifiedTLSServerParameters 요소에 의해 정의된 보안 속성 집합을 나타냅니다. id 속성은 참조된 identifiedTLSServerParameters 요소의 id를 제공합니다.

httpu:threadingParameters

특정 Undertow 인스턴스에서 사용하는 스레드 풀의 크기를 지정합니다. “스레드 풀 구성” 을 참조하십시오.

httpu:threadingParametersRef

확인된ThreadingParameters 요소에 의해 정의된 속성 집합을 나타냅니다. id 속성은 참조 된ThreadingParameters 요소의 id를 제공합니다.

12.4.6. 스레드 풀 구성

다음 중 하나를 통해 Undertow 인스턴스의 스레드 풀 크기를 구성할 수 있습니다.

  • engine-factory 요소에서 확인된ThreadingParameters 요소를 사용하여 스레드 풀의 크기를 지정합니다. 그런 다음 threadingParametersRef 요소를 사용하여 요소를 참조합니다.
  • threadingParameters 요소를 사용하여 스레드 풀의 크기를 직접 지정합니다.

threadingParameters 에는 스레드 풀의 크기를 지정하는 두 개의 속성이 있습니다. 속성은 표 12.9. “Undertow 스레드 풀 구성을 위한 속성” 에서 확인할 수 있습니다.

참고

httpu:identifiedThreadingParameters 요소에는 단일 자 식 스레드 매개 변수 요소가 있습니다.

표 12.9. Undertow 스레드 풀 구성을 위한 속성

속성설명

minThreads

요청을 처리하는 데 Undertow 인스턴스에서 사용할 수 있는 최소 스레드 수를 지정합니다.

maxThreads

요청을 처리하는 데 Undertow 인스턴스에서 사용할 수 있는 최대 스레드 수를 지정합니다.

12.4.7. 예제

예 12.15. “Undertow 인스턴스 구성” 포트 번호 9001에서 Undertow 인스턴스를 구성하는 구성 조각을 보여줍니다.

예 12.15. Undertow 인스턴스 구성

<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:sec="http://cxf.apache.org/configuration/security"
  xmlns:http="http://cxf.apache.org/transports/http/configuration"
  xmlns:httpu="http://cxf.apache.org/transports/http-undertow/configuration"
  xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
  xsi:schemaLocation="http://cxf.apache.org/configuration/security
  		      http://cxf.apache.org/schemas/configuration/security.xsd
            http://cxf.apache.org/transports/http/configuration
            http://cxf.apache.org/schemas/configuration/http-conf.xsd
            http://cxf.apache.org/transports/http-undertow/configuration
            http://cxf.apache.org/schemas/configuration/http-undertow.xsd
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
  ...

  <httpu:engine-factory bus="cxf">
    <httpu:identifiedTLSServerParameters id="secure">
      <sec:keyManagers keyPassword="password">
        <sec:keyStore type="JKS" password="password"
                      file="certs/cherry.jks"/>
      </sec:keyManagers>
    </httpu:identifiedTLSServerParameters>

    <httpu:engine port="9001">
      <httpu:tlsServerParametersRef id="secure" />
      <httpu:threadingParameters minThreads="5"
                                 maxThreads="15" />
    </httpu:engine>
  </httpu:engine-factory>
 </beans>