154장. 고정 캐시 구성 요소
Camel 버전 2.17로 사용 가능
Ignite Cache endpoint는 Ignite Cache 와 상호 작용할 수 있는 camel-ignite 엔드포인트 중 하나입니다. 이를 통해 Producer(Ignite 캐시의 캐시 작업을 호출) 및 Consumer(지속 쿼리의 변경 사항 사용)를 모두 제공합니다.
캐시 값은 항상 메시지의 본문이지만 캐시 키는 항상 IgniteConstants.IGNITE_CACHE_KEY
메시지 헤더에 저장됩니다.
끝점 URI에서 고정 작업을 구성하는 경우에도 IgniteConstants.IGNITE_CACHE_OPERATION
메시지 헤더를 설정하여 해당 작업을 변경할 수 있습니다.
154.1. 옵션
Ignite Cache 구성 요소는 아래에 나열된 4 가지 옵션을 지원합니다.
이름 | 설명 | 기본값 | 유형 |
---|---|---|---|
맞춤식 (일반) | Ignite 인스턴스를 설정합니다. | ignite | |
configurationResource (일반) | 구성을 로드할 위치에서 리소스를 설정합니다. URI, URI(URI) 또는 InputStream일 수 있습니다. | 개체 | |
igniteConfiguration (일반) | 사용자가 프로그래밍 방식의 IgniteConfiguration을 설정할 수 있도록 합니다. | IgniteConfiguration | |
resolveProperty Placeholders (advanced) | 구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders. | true | boolean |
Ignite Cache 끝점은 URI 구문을 사용하여 구성됩니다.
ignite-cache:cacheName
다음 경로 및 쿼리 매개변수를 사용합니다.
154.1.1. 경로 매개 변수 (1 매개변수):
이름 | 설명 | 기본값 | 유형 |
---|---|---|---|
cacheName | 필수 캐시 이름입니다. | 문자열 |
154.1.2. 쿼리 매개변수(16 매개변수):
이름 | 설명 | 기본값 | 유형 |
---|---|---|---|
propagateIncomingBodyIfNo ReturnValue (common) | 기본 Ignite 작업의 반환 형식이 void이면 들어오는 본문을 전파할지 여부를 설정합니다.Sets whether to propagate the incoming body if the return type of the underlying Ignite operation is void. | true | boolean |
treatCollectionsAsCache Objects (common) | 컬렉션을 캐시 개체 또는 삽입/업데이트/계산할 항목의 컬렉션으로 처리할지 여부를 설정합니다.Sets whether to treat Collections as cache objects or as Collections of items to insert/update/compute, etc. | false | boolean |
autoUnsubscribe (consumer) | 연속 쿼리 소비자에서 자동 구독이 활성화되었는지 여부입니다. | true | boolean |
bridgeErrorHandler (consumer) | 소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다. | false | boolean |
fireExistingQueryResults (consumer) | 쿼리와 일치하는 기존 결과를 처리할지 여부입니다. 지속적 쿼리 소비자의 초기화에 사용됩니다. | false | boolean |
oneExchangePerUpdate (consumer) | 여러 업데이트가 하나의 일괄 처리로 수신되더라도 각 업데이트를 개별 Exchange에 패키징할지 여부입니다. 지속적 쿼리 소비자만 사용합니다. | true | boolean |
pageSize (consumer) | 페이지 크기입니다. 지속적 쿼리 소비자만 사용합니다. | 1 | int |
쿼리 (consumer) | 실행할 쿼리, 해당 작업이 필요한 작업 및 지속적 쿼리 소비자의 경우 필요합니다.The Query to execute, only needed for operations that require it, and for the Continuous Query Consumer. | 오브젝트>> | |
remoteFilter (consumer) | 연속 쿼리 소비자만 사용하는 원격 필터입니다. | Object> | |
TimeInterval (consumer) | 지속적 쿼리 소비자의 시간 간격입니다. | 0 | long |
예외 처리기 (consumer) | 소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션이 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다. | ExceptionHandler | |
exchangePattern (consumer) | 소비자가 교환을 생성할 때 교환 패턴을 설정합니다. | ExchangePattern | |
cachePeekMode (producer) | CachePeekMode는 이를 필요로 하는 작업에만 필요합니다(링크 IgniteCacheOperationSIZE). | ALL | CachePeekMode |
failIfInexistentCache (producer) | 캐시가 없는 경우 초기화에 실패할지 여부입니다. | false | boolean |
작업 (producer) | 호출할 캐시 작업입니다. 가능한 값: GET, PUT, REMOVE, SIZE, REBALANCE, QUERY, CLEAR. | IgniteCacheOperation | |
synchronous (advanced) | 동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우). | false | boolean |
154.1.3. 헤더 사용
이 엔드포인트는 다음 헤더를 사용합니다.
헤더 이름 | 상수 | 예상 유형 | 설명 |
---|---|---|---|
CamelIgniteCacheKey | IgniteConstants.IGNITE_CACHE_KEY | 문자열 | 메시지 본문에 있는 엔트리 값에 대한 캐시 키입니다. |
CamelIgniteCacheQuery | IgniteConstants.IGNITE_CACHE_QUERY | 쿼리 | QUERY 작업을 호출할 때 실행할 쿼리(producer)입니다. |
CamelIgniteCacheOperation | IgniteConstants.IGNITE_CACHE_OPERATION | IgniteCacheOperation enum | 캐시 작업을 실행하도록 동적으로 변경할 수 있습니다(producer). |
CamelIgniteCachePeekMode | IgniteConstants.IGNITE_CACHE_PEEK_MODE | CachePeekMode enum | SIZE 작업을 실행할 때 캐시 peek 모드를 동적으로 변경할 수 있습니다. |
CamelIgniteCacheEventType | IgniteConstants.IGNITE_CACHE_EVENT_TYPE | int(EventType 상수) | 이 헤더는 연속 쿼리 소비자를 사용할 때 수신된 이벤트 유형을 전달합니다. |
CamelIgniteCacheName | IgniteConstants.IGNITE_CACHE_NAME | 문자열 | 이 헤더는 연속 쿼리 이벤트가 수신된 캐시 이름(consumer)을 전달합니다. 생산자 작업이 수행되는 캐시를 동적으로 변경할 수 없습니다. 이를 위해 EIP를 사용합니다(예: 수신자 목록, 동적 라우터). |
CamelIgniteCacheOldValue | IgniteConstants.IGNITE_CACHE_OLD_VALUE | 개체 | 이 헤더는 들어오는 캐시 이벤트(consumer)에 전달될 때 이전 캐시 값을 전달합니다. |