305장. 간단한 JMS Batch 구성 요소


Camel 버전 2.16에서 사용 가능

SJMS Batch는 JMS 큐의 고성능 트랜잭션 일괄 처리를 위한 특수 구성 요소입니다. 이는 소비자 전용 구성 요소와 집계기의 하이브리드로 간주될 수 있습니다.

Camel의 일반적인 사용 사례는 집계된 상태를 다른 엔드포인트로 보내기 전에 큐의 메시지를 사용하고 집계하는 것입니다. 처리를 수행하는 시스템이 실패하는 경우 데이터가 손실되지 않도록하기 위해 일반적으로 큐에서 트랜잭션 내에서 소비되고, JDBC 구성 요소에서 발견된 것과 같은 영구 AggregationRepository 에 저장된 한 번 집계됩니다.

집계기 패턴의 동작에는 들어오는 메시지가 집계되기 전에 AggregationRepository 에서 데이터를 가져와서 나중에 결과를 다시 작성합니다. 기본적으로 집계된 아티팩트 수가 증가함에 따라 읽기 및 쓰기 시간이 점차 길어집니다. 이 문제의 영향을 보여주는 임의의 시간 단위를 사용하는 대략적인 예는 다음과 같습니다.

Expand
항목읽기 시간쓰기 시간총 시간

0

0

1

1

1

1

2

4

2

2

3

9

3

3

4

16

4

4

5

25

5

5

6

36

6

6

7

49

7

7

8

64

8

8

9

81

9

9

10

100

반면 SJMS Batch 구성 요소를 사용한 소비 성능은 선형입니다. 각 메시지는 다음 메시지를 가져오기 전에 AggregationStrategy 를 사용하여 사용하고 집계됩니다. 모든 소비 및 집계가 단일 JMS 트랜잭션에서 수행되므로 중간 상태를 유지하는 데 외부 스토리지가 필요하지 않으므로 위에서 설명한 읽기 및 쓰기 비용이 발생하지 않습니다. 실제로 이를 통해 처리량이 높은 여러 주문을 산출합니다.

완료 조건이 충족되면 첫 번째 메시지 이후 크기 또는 기간에 따라 집계된 Exchange 가 경로로 전달됩니다. 이 Exchange 의 처리 중에 예외가 발생하거나 시스템이 종료되면 원래 사용한 모든 메시지가 큐에 백업됩니다(또는 브로커 구성에 따라 dead-letter 큐에 배치됨).

일반 집계기를 사용하는 것과는 달리 집계 조건에 대한 기능이 없으므로 여러 메시지 그룹으로 사용할 수 없습니다. 소비된 모든 메시지는 단일 일괄 처리로 집계됩니다.

하나의 경로를 사용하여 병렬로 사용할 수 있는 여러 JMS 소비자 지원을 사용할 수 있으며, 동시에 JMS 메시지 그룹과 같은 기능을 사용하여 관련 메시지를 그룹화할 수 있습니다.

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

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

305.1. URI 형식

sjms:[queue:]destinationName[?options]
Copy to Clipboard Toggle word wrap

여기서 destinationName 은 JMS 큐입니다. 기본적으로 destinationName 은 큐 이름으로 해석됩니다.

sjms:FOO.BAR
Copy to Clipboard Toggle word wrap

원하는 경우 선택적 queue: 접두사를 포함할 수 있습니다.

sjms:queue:FOO.BAR
Copy to Clipboard Toggle word wrap

해당 컨텍스트에서 일괄 소비를 사용하는 이점이 없기 때문에 주제 소비가 지원되지 않습니다. 주제 메시지는 일반적으로 영구적이지 않으며 손실이 허용됩니다. 트랜잭션에 실패하는 경우 브로커가 주제 메시지를 다시 제공하지 않을 수 있습니다. 일반 SJMS 소비자 끝점은 이 시나리오에서 일반 비영리적 지원 집계기와 함께 사용할 수 있습니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat