34.11. 영구 tail 추적 활성화
이 기능을 활성화하려면 끝점 URI에 다음 옵션을 설정합니다.
-
persistentTailtracking 옵션을true로 설정합니다. -
동일한 컬렉션을 여러 소비자 간에 재사용할 수 있도록 이 소비자의 고유 식별자에 대한
persistentId옵션
또한 tailtrack Db , tail trackCollection 및 옵션을 설정하여 런타임 정보를 저장할 위치를 사용자 지정할 수 있습니다. 각 옵션에 대한 설명은 이 페이지 상단에 있는 끝점 옵션 표를 참조하십시오.
tail trackField
예를 들어 다음 경로는 증가 필드로 "departureTime"을 사용하여 1000ms의 기본 regeneration 커서 지연을 사용하여 1000ms의 "flights.cancellllations"에서 소비하며, "flights.camelTailing"의 "cancell boundaryer" ID를 유지합니다. 마지막 처리된 값을 "lasttrackingValue" 필드 아래에 저장합니다 (camelTail tracking 및 lastTrackingValue 는 기본값).
from("mongodb:myDb?database=flights&collection=cancellations&tailTrackIncreasingField=departureTime&persistentTailTracking=true" +
"&persistentId=cancellationsTracker")
.id("tailableCursorConsumer2")
.autoStartup(false)
.to("mock:test");
다음은 위의 것과 동일한 또 다른 예이지만, 영구 꼬리 추적 런타임 정보는 "lastProcessedDepartureTime" 필드의 "trackers.camelTrackers" 컬렉션에 저장됩니다.
from("mongodb:myDb?database=flights&collection=cancellations&tailTrackIncreasingField=departureTime&persistentTailTracking=true" +
"&persistentId=cancellationsTracker&tailTrackDb=trackers&tailTrackCollection=camelTrackers" +
"&tailTrackField=lastProcessedDepartureTime")
.id("tailableCursorConsumer3")
.autoStartup(false)
.to("mock:test");
34.11.1. 스트림 소비자 변경 링크 복사링크가 클립보드에 복사되었습니다!
변경 스트림을 사용하면 애플리케이션이 MongoDB oplog 사용의 복잡성 및 위험 없이 실시간 데이터 변경에 액세스할 수 있습니다. 애플리케이션은 변경 스트림을 사용하여 컬렉션의 모든 데이터 변경 사항을 서브스크립션하고 즉시 대응할 수 있습니다. 변경 스트림은 집계 프레임워크를 사용하므로 애플리케이션은 특정 변경 사항을 필터링하거나 원하는 시점에 알림을 변환할 수도 있습니다. 교환 본문에는 모든 변경 내용의 전체 문서가 포함됩니다.
Change Streams Consumer를 구성하려면 consumerType,데이터베이스,컬렉션 및 선택적 JSON 속성 streamFilter 를 지정하여 이벤트를 필터링해야 합니다. 이 JSON 속성은 표준 MongoDB $match 집계입니다. XML DSL 구성을 사용하여 쉽게 지정할 수 있습니다.
<route id="filterConsumer">
<from uri="mongodb:myDb?consumerType=changeStreams&database=flights&collection=tickets&streamFilter={ '$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]} }"/>
<to uri="mock:test"/>
</route>
Java 구성:
from("mongodb:myDb?consumerType=changeStreams&database=flights&collection=tickets&streamFilter={ '$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]} }")
.to("mock:test");
streamFilter 값을 속성 자리 표시자로 외부화하여 엔드포인트 URI 매개변수가 더 깔 끔 하고 읽기 쉽도록 할 수 있습니다.
changeStreams 소비자 유형도 다음 OUT 헤더를 반환합니다.
| 헤더 키 | 빠른 일정 | description (MongoDB API doc에서 추출) | 데이터 유형 |
|---|---|---|---|
|
|
| 발생한 작업 유형입니다. 다음 값 중 하나일 수 있습니다. insert, delete, replace, update, drop, rename, dropDatabase, invalidate입니다. | 문자열 |
|
|
| 삽입, 교체, 삭제, 업데이트 작업(예: CRUD 작업)에서 만들거나 수정한 문서의 _id가 포함된 문서입니다. sharded 컬렉션의 경우 문서의 전체 shard 키도 표시합니다. _id 필드는 이미 shard 키의 일부인 경우 반복되지 않습니다. | ObjectId |