23.7. 예제
키/값을 명명된 캐시에 넣습니다.
from("direct:start") .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUT) (1) .setHeader(InfinispanConstants.KEY).constant("123") (2) .to("infinispan:myCacheName&cacheContainer=#cacheContainer"); (3)
다음과 같습니다.
- 1 - 작업을 수행하도록 설정합니다.
- 2 - 캐시의 요소를 식별하는 데 사용되는 키를 설정합니다.
3 - 레지스트리에서 구성된 캐시 관리자
cacheContainer
를 사용하여 요소를 캐시myCacheName
항목이 만료되기 전에 수명 및/또는 유휴 시간을 구성하고 예를 들어 캐시에서 제거될 수 있습니다.
from("direct:start") .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GET) .setHeader(InfinispanConstants.KEY).constant("123") .setHeader(InfinispanConstants.LIFESPAN_TIME).constant(100L) (1) .setHeader(InfinispanConstants.LIFESPAN_TIME_UNIT.constant(TimeUnit.MILLISECONDS.toString()) (2) .to("infinispan:myCacheName");
다음과 같습니다.
- 1 - 항목의 수명을 설정
- 2 - 수명의 시간 단위 설정
queries
from("direct:start") .setHeader(InfinispanConstants.OPERATION, InfinispanConstants.QUERY) .setHeader(InfinispanConstants.QUERY_BUILDER, new InfinispanQueryBuilder() { @Override public Query build(QueryFactory<Query> qf) { return qf.from(User.class).having("name").like("%abc%").build(); } }) .to("infinispan:myCacheName?cacheContainer=#cacheManager") ;
도메인 개체의 .proto 설명자를 원격 Data Grid 서버에 등록해야 합니다. 공식 Infinispan 문서의 Remote Query Example 을 참조하십시오.
사용자 정의 Listeners
from("infinispan://?cacheContainer=#cacheManager&customListener=#myCustomListener") .to("mock:result");
myCustomListener
의 인스턴스가 있어야 하며 Camel은 레지스트리에서 조회할 수 있어야 합니다
. 사용자는 org.apache.camel.component.infinispan.remote.InfinispanRemoteCustomListener
클래스를 확장하고 패키지 org.infinispan.client.hotrod.annotation
에서 찾을 수 있는 @ClientListener
로 결과 클래스에 주석을 달 것을 권장합니다.