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 at1
. 기본 구현은 스레드로부터 안전하도록java.util.concurrent.atomic.AtomicLong
유형을 사용합니다. -
org.apache.camel.impl.JavaUuidGenerator
Cryostat- functionimplements an ID based on thejava.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
34.4.4. Java를 사용하여 UUID 생성기 지정 링크 복사링크가 클립보드에 복사되었습니다!
Java를 사용하여 기본 UUID 생성기를 교체하려면 현재 CamelContext
오브젝트에서 setUuidGenerator()
메서드를 호출합니다. 예를 들어 다음과 같이 현재 CamelContext
에 SimpleUuidGenerator
인스턴스를 등록할 수 있습니다.
// Java getContext().setUuidGenerator(new org.apache.camel.impl.SimpleUuidGenerator());
// 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
. 예를 들어 다음과 같이 CamelContext
에 SimpleUuidGenerator
인스턴스를 등록할 수 있습니다.