链接-https://github.com/spring-cloud-stream-app-starters/aggregator/tree/master/spring-cloud-starter-stream-processor-aggregator未列出gemfire邮件存储库的属性
答案 0 :(得分:1)
GemfireMessageStore
的配置如下:
@ConditionalOnClass(GemfireMessageStore.class)
@ConditionalOnProperty(prefix = AggregatorProperties.PREFIX,
name = "message-store-type",
havingValue = AggregatorProperties.MessageStoreType.GEMFIRE)
@Import(ClientCacheAutoConfiguration.class)
static class Gemfire {
@Bean
@ConditionalOnMissingBean
public ClientRegionFactoryBean<?, ?> gemfireRegion(GemFireCache cache, AggregatorProperties properties) {
ClientRegionFactoryBean<?, ?> clientRegionFactoryBean = new ClientRegionFactoryBean<>();
clientRegionFactoryBean.setCache(cache);
clientRegionFactoryBean.setName(properties.getMessageStoreEntity());
return clientRegionFactoryBean;
}
@Bean
public MessageGroupStore messageStore(Region<Object, Object> region) {
return new GemfireMessageStore(region);
}
}
重点是,您始终可以使用自己的名称覆盖ClientRegionFactoryBean
。
或者,您可以考虑到ClientCacheAutoConfiguration
是基于@ClientCacheApplication
的,而这反过来又允许您拥有一个ClientCacheConfigurer
bean,并提供了足以用于客户端缓存配置的任何内容。包括配置和池。没错:它不在应用程序启动程序的配置级别上,您必须纠正一些自定义代码,将它们作为依赖项包含在目标特定于绑定程序的最终uber jar中。
有关如何构建它们的更多信息,请参见文档:https://docs.spring.io/spring-cloud-stream-app-starters/docs/Einstein.RC1/reference/htmlsingle/#_patching_pre_built_applications
答案 1 :(得分:0)
Spring Integration提供了多种后端存储选项。您可以在spring-cloud-starter-stream-processor-aggregator/README中了解更多信息。
有关此问题的Spring Integration文档包含在链接中,Gemfire section可能很有用。
回顾MessageGroupStore
implementation也很有用,因为它是aggregator
中存储选项的基础。