34.4. 내장된 UUID 생성기


34.4.1. 개요

Apache Camel을 사용하면 CamelContext 에서 UUID 생성기를 등록할 수 있습니다. 그런 다음 이 UUID 생성기는 Apache Camel이 고유한 ID 전환이 필요할 때마다 등록된 UUID 생성기가 호출되어 Exchange.getExchangeId()Message.getMessageId() 메서드에서 반환한 ID를 생성합니다.

예를 들어 애플리케이션의 일부가 ID를 36자(예: Websphere MQ)로 지원하지 않는 경우 기본 UUID 생성기를 교체할 수 있습니다. 또한 테스트를 위해 간단한 카운터( SimpleUuidGenerator참조)를 사용하여 ID를 생성하는 것이 편리합니다.

34.4.2. 제공된 UUID 생성기

코어에 제공되는 다음 UUID 생성기 중 하나를 사용하도록 Apache Camel을 구성할 수 있습니다.

  • org.apache.camel.impl.ActiveMQUuidGenerator Cryostat- (Default) 는 Apache ActiveMQ에서 사용하는 것과 동일한 ID 스타일을 생성합니다. 이 구현은 클라우드 컴퓨팅 (예: Google App Engine) 컨텍스트에서 금지되는 일부 JDK API를 사용하므로 모든 애플리케이션에 적합하지 않을 수 있습니다.
  • org.apache.camel.impl.SimpleUuidGenerator Cryostat-WITHimplements a simple counter ID, starting at 1. 기본 구현은 스레드로부터 안전하도록 java.util.concurrent.atomic.AtomicLong 유형을 사용합니다.
  • org.apache.camel.impl.JavaUuidGenerator Cryostat- functionimplements an ID based on the java.util.UUID type. java.util.UUID 가 동기화되므로 일부 고도의 동시 시스템의 성능에 영향을 미칠 수 있습니다.

34.4.3. 사용자 정의 UUID 생성기

사용자 지정 UUID 생성기를 구현하려면 예 34.5. “UuidGenerator Interface” 에 표시된 org.apache.camel.spi.UuidGenerator 인터페이스를 구현합니다. generateUuid() 는 고유한 ID 문자열을 반환하도록 구현되어야 합니다.

예 34.5. UuidGenerator Interface

// Java
package org.apache.camel.spi;

/**
 * Generator to generate UUID strings.
 */
public interface UuidGenerator {
    String generateUuid();
}

34.4.4. Java를 사용하여 UUID 생성기 지정

Java를 사용하여 기본 UUID 생성기를 교체하려면 현재 CamelContext 오브젝트에서 setUuidGenerator() 메서드를 호출합니다. 예를 들어 다음과 같이 현재 CamelContextSimpleUuidGenerator 인스턴스를 등록할 수 있습니다.

// Java
getContext().setUuidGenerator(new org.apache.camel.impl.SimpleUuidGenerator());
참고

setUuidGenerator() 메서드는 시작 중에 경로가 활성화되기 전에 호출되어야 합니다.

34.4.5. Spring을 사용하여 UUID 생성기 지정

Spring을 사용하여 기본 UUID 생성기를 교체하려면 Springans 요소를 사용하여 UUID 생성기 인스턴스를 생성하는 것입니다. camelContext 인스턴스가 생성되면 Spring 레지스트리를 자동으로 조회하여 org.apache.camel.spi.UuidGenerator. 예를 들어 다음과 같이 CamelContextSimpleUuidGenerator 인스턴스를 등록할 수 있습니다.

<beans ...>
  <bean id="simpleUuidGenerator"
        class="org.apache.camel.impl.SimpleUuidGenerator" />

  <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
      ...
  </camelContext>
  ...
</beans>
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.