133.2. 캐시 생산자 매핑 - ~("hazelcast-map:foo")
지도에 값을 저장하려는 경우 맵 캐시 생산자를 사용할 수 있습니다.
맵 캐시 생산자는 CamelHazelcastOperationType 헤더에서 지정한 다음 작업을 제공합니다.
- put
- putIfAbsent
- get
- getAll
- keySet
- containsKey
- containsValue
- delete
- update
- query
- clear
- remove
- evictAll
모든 작업은 "hazelcast.operation.type" 헤더 변수 내에 제공됩니다. Java DSL에서 org.apache.camel.component.hazelcast.HazelcastOperation
의 상수를 사용할 수 있습니다.
요청 메시지의 헤더 변수:
이름 | 유형 | 설명 |
---|---|---|
|
| 이미 설명한 대로 |
|
| 캐시 내부에 오브젝트를 저장/찾기 위한 오브젝트 ID(쿼리 작업에 필요하지 않음) |
put 및 putIfAbsent 작업은 제거 메커니즘을 제공합니다.
이름 | 유형 | 설명 |
---|---|---|
|
| TTL 값입니다. |
|
| 시간 단위(DAYS/HOURS/MINUTES/….) |
다음을 사용하여 샘플을 호출할 수 있습니다.
template.sendBodyAndHeader("direct:[put|get|update|delete|query|evict]", "my-foo", HazelcastConstants.OBJECT_ID, "4711");
133.2.1. 제품 상세 정보:
Java DSL:
from("direct:put") .setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.PUT)) .toF("hazelcast-%sfoo", HazelcastConstants.MAP_PREFIX);
Spring DSL:
<route> <from uri="direct:put" /> <!-- If using version 2.8 and above set headerName to "CamelHazelcastOperationType" --> <setHeader headerName="hazelcast.operation.type"> <constant>put</constant> </setHeader> <to uri="hazelcast-map:foo" /> </route>
제거 가 포함된 샘플:
Java DSL:
from("direct:put") .setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.PUT)) .setHeader(HazelcastConstants.TTL_VALUE, constant(Long.valueOf(1))) .setHeader(HazelcastConstants.TTL_UNIT, constant(TimeUnit.MINUTES)) .toF("hazelcast-%sfoo", HazelcastConstants.MAP_PREFIX);
Spring DSL:
<route> <from uri="direct:put" /> <!-- If using version 2.8 and above set headerName to "CamelHazelcastOperationType" --> <setHeader headerName="hazelcast.operation.type"> <constant>put</constant> </setHeader> <setHeader headerName="HazelcastConstants.TTL_VALUE"> <simple resultType="java.lang.Long">1</simple> </setHeader> <setHeader headerName="HazelcastConstants.TTL_UNIT"> <simple resultType="java.util.concurrent.TimeUnit">TimeUnit.MINUTES</simple> </setHeader> <to uri="hazelcast-map:foo" /> </route>