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 의 상수를 사용할 수 있습니다.

요청 메시지의 헤더 변수:

이름유형설명

CamelHazelcastOperationType

문자열

이미 설명한 대로

CamelHazelcastObjectId

문자열

캐시 내부에 오브젝트를 저장/찾기 위한 오브젝트 ID(쿼리 작업에 필요하지 않음)

putputIfAbsent 작업은 제거 메커니즘을 제공합니다.

이름유형설명

CamelHazelcastObjectTtlValue

정수

TTL 값입니다.

CamelHazelcastObjectTtlUnit

java.util.concurrent.TimeUnit

시간 단위(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>