84장. Disruptor Component


Camel 버전 2.12에서 사용 가능

disruptor: 구성 요소는 표준 SEDA 구성 요소만큼 비동기 SEDA 동작을 많이 제공하지만 표준 SEDA 에서 사용하는 BlockingQueue 대신 Disruptor 를 사용합니다. 또는 a

Disruptor-vm: 끝점은 이 구성 요소에서 지원되며 표준 VM 에 대한 대안을 제공합니다. SEDA 구성 요소와 마찬가지로 중단기의 버퍼: 끝점은 단일 CamelContext 내에서만 볼 수 있으며 지속성 또는 복구에 대한 지원은 제공되지 않습니다. disruptor-vm: 엔드포인트의 버퍼는 CamelContexts 인스턴스에서도 통신 지원을 제공하므로 이 메커니즘을 사용하여 웹 애플리케이션 간에 통신할 수 있습니다( camel-disruptor.jarsystem/boot classpath에 있음).

SEDA 또는 VM Component에서 Disruptor Component를 사용하도록 선택하는 주요 장점은 생산자 및/또는 멀티 캐스트 또는 동시 소비자 간에 높은 경합이 있는 사용 사례의 성능입니다. 이러한 경우 처리량 및 대기 시간 감소가 크게 향상되었습니다. 경합이 없는 시나리오에서의 성능은 SEDA 및 VM 구성 요소에 따라 다릅니다.

Disruptor는 SEDA 및 VM 구성 요소의 동작과 옵션을 가능한 한 많이 모방하려는 의도로 구현됩니다. 주요 차이점은 다음과 같습니다.

  • 사용된 버퍼는 항상 크기(기본값 1024 대)로 바인딩됩니다.
  • 버퍼가 항상 끊기기 때문에 버퍼가 예외를 throw하는 대신 버퍼가 가득 찼는 동안 Disruptor의 기본 동작이 차단됩니다.As a buffer is always bouded, the default behavior for the Disruptor is to block while the buffer is full instead of throwing an exception. 이 기본 동작은 구성 요소에 구성할 수 있습니다(옵션 참조).
  • Disruptor enpoints는 BrowsableEndpoint 인터페이스를 구현하지 않습니다. 따라서 현재 Disruptor에 있는 교환기는 검색될 수 없으며, 교환량만 검색할 수 있습니다.
  • Disruptor는 소비자(multicasted 또는 otherwise)를 정적으로 구성해야 합니다. 중단기에서 소비자를 추가하거나 제거하려면 Disruptor에서 모든 보류 중인 교환을 완전히 플러싱해야 합니다.
  • 재구성의 결과: Disruptor를 통해 전송되는 데이터는 직접 처리되고 'gone'이 하나 이상의 소비자가 있는 경우, 늦은 가입자는 가입한 후에만 새로운 변경 사항이 게시됩니다.
  • pollTimeout 옵션은 Disruptor Component에서 지원되지 않습니다.
  • 생산자가 전체 Disruptor에서 차단되면 스레드 인터럽트에 응답하지 않습니다.

Maven 사용자는 이 구성 요소의 pom.xml 에 다음 종속성을 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-disruptor</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

84.1. URI 형식

 disruptor:someName[?options]
Copy to Clipboard Toggle word wrap

또는

 disruptor-vm:someName[?options]
Copy to Clipboard Toggle word wrap

여기서 someName 은 현재 CamelContext 내에서 엔드포인트를 고유하게 식별하는 문자열일 수 있습니다(또는
disruptor-vm:).
다음 형식으로 URI에 쿼리 옵션을 추가할 수 있습니다.

  ?option=value&option=value&…
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat