325.14. JDBC 기반 집계 리포지토리 사용


Camel 2.6에서 사용 가능

INFO: Camel 2.6에서 JdbcAgregationRepository 사용

Camel 2.6에서는 JdbcAgregationRepository가 camel-jdbc-aggregator 구성 요소에서 제공됩니다. Camel 2.7 이후부터 JdbcAgregationRepositorycamel-sql 구성 요소에서 제공됩니다.

JdbcAggregationRepository 는 집계된 메시지를 지속하는 AggregationRepository 입니다. 이렇게 하면 기본 집계기에서 AggregationRepository 에서만 메모리에 를 사용하므로 메시지가 느릴 수 있습니다. JdbcAggregationRepository 를 통해 Camel과 함께 Aggregator에 대한 지속적인 지원을 제공할 수 있습니다.

Exchange가 성공적으로 처리된 경우에만 AggregationRepository 에서 확인 방법이 호출될 때 발생하는 complete로 표시됩니다. 즉, 동일한 Exchange가 다시 실패하면 성공할 때까지 다시 시도됩니다.

옵션 maximumRedeliveries 를 사용하여 지정된 복구된 교환에 대한 최대 복구 시도 횟수를 제한할 수 있습니다. 또한 Camel은 최대Redeliveries 에 도달했을 때 Exchange를 보낼 위치를 알고 있도록 deadLetterUri 옵션을 설정해야 합니다.

camel-sql의 단위 테스트에서 몇 가지 예를 볼 수 있습니다(예: 이 테스트 ).

325.14.1. 데이터베이스

작동을 위해 각 집계기에서는 집계와 완료된 두 개의 테이블을 사용합니다. 규칙에 따라 완료된 이름은 "_COMPLETED" 로 접미사가 지정된 집계 이름과 동일합니다. 이름은 RepositoryName 속성을 사용하여 SpringBean에서 구성해야 합니다. 다음 예제에서는 집계를 사용합니다.

두 테이블의 테이블 구조 정의는 동일합니다. 두 경우 모두 String 값이 키(id)로 사용되는 반면 Blob에는 바이트 배열로 직렬화된 교환이 포함됩니다.
그러나 한 가지 차이점이 있습니다. id 필드에 테이블에 따라 동일한 콘텐츠가 없습니다.
집계 테이블 ID에는 메시지를 집계하는 데 구성 요소에서 사용하는 상관 관계가 있습니다. 완료된 표에서 id 는 해당 Blob 필드에 저장된 교환 ID를 보유합니다.

다음은 테이블을 생성하는 데 사용되는 SQL 쿼리이며, "aggregation" 을 집계기 리포지토리 이름으로 교체합니다.

CREATE TABLE aggregation (
 id varchar(255) NOT NULL,
 exchange blob NOT NULL,
 constraint aggregation_pk PRIMARY KEY (id)
);
CREATE TABLE aggregation_completed (
 id varchar(255) NOT NULL,
 exchange blob NOT NULL,
 constraint aggregation_completed_pk PRIMARY KEY (id)
);
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