213.8. LevelDB


Camel 2.10에서 사용 가능

LevelDB 는 매우 가볍고 삽입 가능한 키 값 데이터베이스입니다. Camel과 함께 Aggregator와 같은 다양한 Camel 기능에 대한 지속적인 지원을 제공할 수 있습니다.

현재 제공하는 기능:

  • LevelDBAggregationRepository

213.8.1. LevelDBAggregationRepository 사용

LevelDBAggregationRepository 는 이동 중에 집계된 메시지를 유지하는 집계된Repository 입니다. 이렇게 하면 기본 집계자가 메모리에만 AggregationRepository 이므로 메시지를 느슨하게 사용할 수 있습니다.

다음과 같은 옵션이 있습니다.

옵션유형설명

repositoryName

문자열

필수 리포지토리 이름입니다. 여러 리포지토리에 공유 LevelDBFile 을 사용할 수 있습니다.

persistentFileName

문자열

영구 스토리지의 파일 이름입니다. 시작 시 파일이 없는 경우 새 파일이 생성됩니다.

levelDBFile

LevelDBFile

기존 구성된 org.apache.camel.component.leveldb.LevelDBFile 인스턴스를 사용합니다.

sync

boolean

Camel 2.12: LevelDBFile이 쓰기 시 동기화되어야 하는지 여부를 나타냅니다. 기본값은 false입니다. 쓰기 시 동기화를 통해 모든 쓰기가 디스크에 스풀링될 때까지 항상 대기하므로 업데이트가 느슨하지 않습니다. 동기화 및 동기화 쓰기에 대한 자세한 내용은 LevelDB 문서를 참조하십시오.

returnOldExchange

boolean

기존 Exchange가 있는 경우 가져오기 작업에서 이전 Exchange를 반환해야 하는지 여부입니다. 기본적으로 이 옵션은 집계 시 이전 교환이 필요하지 않으므로 최적화하려면 false 입니다.

useRecovery

boolean

복구 가능 여부입니다. 이 옵션은 기본적으로 true 입니다. Camel Aggregator 자동 복구 실패된 교환을 활성화하여 다시 제출하도록 합니다.

recoveryInterval

long

복구가 활성화되면 백그라운드 작업은 모든 x의 모든 시간을 실행하여 실패한 교환을 복구하고 다시 제출할 수 있는지 스캔합니다. 기본적으로 이 간격은 5000밀리 초입니다.

maximumRedeliveries

int

복구된 교환에 대한 재전송 시도의 최대 수를 제한할 수 있습니다. 활성화된 경우 모든 재전송 시도가 실패한 경우 교환은 dead letter 채널로 이동합니다. 기본적으로 이 옵션은 비활성화되어 있습니다. 이 옵션을 사용하는 경우 deadLetterUri 옵션도 제공해야 합니다.

deadLetterUri

문자열

복구된 교환이 소진된 데드페이스 채널의 끝점 URI가 이동됩니다. 이 옵션을 사용하는 경우 maximumRedeliveries 옵션도 제공해야 합니다.

repositoryName 옵션을 제공해야 합니다. 그런 다음 persistentFileName 또는 levelDBFile 을 제공해야 합니다.

213.8.2. 유지될 때 보존되는 내용

LevelDBAggregationRepository 는 직렬화 가능 호환 메시지 본문 데이터 유형만 유지합니다. 메시지 헤더는 기본 / 문자열 / 숫자 / 기타여야 합니다. 데이터 유형이 이러한 유형이 아니면 해당 유형이 삭제되고 WARN 이 기록됩니다. 메시지 본문과 메시지 헤더만 유지됩니다. 교환 속성은 유지되지 않습니다.

213.8.3. 복구

LevelDBAggregationRepository 는 기본적으로 실패한 모든 교환을 복구합니다. 이 작업은 영구 저장소에서 실패한 Exchange를 검색하는 백그라운드 작업을 통해 수행됩니다. checkInterval 옵션을 사용하여 이 작업이 실행되는 빈도를 설정할 수 있습니다. 복구는 Camel이 실패한 교환을 복구하고 다시 전달하도록 하는 트랜잭션으로 작동합니다. 복구된 모든 Exchange는 영구 저장소에서 복원되고 다시 제출되고 다시 전송됩니다.

다음 헤더는 교환이 복구/배달될 때 설정됩니다.

헤더유형설명

Exchange.REDELIVERED

부울

교환이 재전송되고 있음을 나타내기 위해 true로 설정됩니다.

Exchange.REDELIVERY_COUNTER

정수

1부터 시작하여 재전송 시도입니다.

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

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

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

213.8.3.1. Java DSL에서 LevelDBAggregationRepository 사용

이 예제에서는 집계된 메시지를 target/data/leveldb.dat 파일에 유지하려고 합니다.

213.8.3.2. Spring XML에서 LevelDBAggregationRepository 사용

동일한 예이지만 대신 Spring XML을 사용합니다.

213.8.4. 종속 항목

카멜 경로에서 LevelDB를 사용하려면 camel-leveldb 에 대한 종속성을 추가해야 합니다.

maven을 사용하는 경우 pom.xml에 다음을 추가하여 최신 & 가장 큰 릴리스의 버전 번호를 대체합니다 (최신 버전의 다운로드 페이지 참조).

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-leveldb</artifactId>
  <version>2.10.0</version>
</dependency>

213.8.5. 예를 들면 다음과 같습니다.

  • Camel 구성
  • Component
  • endpoint
  • 시작하기
  • 수집기
  • HawtDB
  • components
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.