24.9. Infinispan 기반 집계 리포지토리 사용
이 섹션에서는 Infinispan 기반 집계 리포지토리를 사용할 것입니다.
Java 예
InfinispanRemoteConfiguration conf = new InfinispanRemoteConfiguration(); (1)
conf.setHosts("localhost:1122")
InfinispanRemoteAggregationRepository repo = new InfinispanRemoteAggregationRepository(); (2)
repo.setCacheName("aggregation");
repo.setConfiguration(conf);
context.addRoutes(new RouteBuilder() {
@Override
public void configure() {
from("direct:start")
.aggregate(header("MessageID"))
.completionSize(3)
.aggregationRepository(repo) (3)
.aggregationStrategyRef("myStrategy")
.to("mock:result");
}
});
여기서,
- 1 - 캐시 구성
- 2 - 리포지토리 빈 생성
- 3 - 리포지터리를 경로로 설정
XML 예
<bean id="infinispanRepo" class="org.apache.camel.component.infinispan.remote.InfinispanRemoteAggregationRepository" destroy-method="stop">
<constructor-arg value="aggregation"/> (1)
<property name="configuration"> (2)
<bean class="org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration">
<property name="hosts" value="localhost:11222"/>
</bean>
</property>
</bean>
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:start" />
<aggregate strategyRef="myStrategy"
completionSize="3"
aggregationRepositoryRef="infinispanRepo"> (3)
<correlationExpression>
<header>MessageID</header>
</correlationExpression>
<to uri="mock:result"/>
</aggregate>
</route>
</camelContext>
여기서,
- 1 - 리포지터리에서 사용할 캐시의 이름을 설정합니다.
- 2 - 리포지토리 빈 구성
- 3 - 리포지터리를 경로로 설정
참고
Infinispan 11이 릴리스되면 생성된 모든 캐시에 인코딩 구성을 설정해야 합니다. 이는 또한 이벤트를 활용하는 데도 중요합니다. 자세한 내용은 공식 Infinispan 설명서의 Data Encoding 및 MediaTypes 를 참조하십시오.