Как настроить gemfire как хранилище сообщений для модуля агрегатора в потоке данных весеннего облака
Ссылка - https://github.com/spring-cloud-stream-app-starters/aggregator/tree/master/spring-cloud-starter-stream-processor-aggregator не перечисляет свойства для хранилища сообщений gemfire
2 ответа
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 и предоставьте все, что достаточно для вашей конфигурации кэша клиента. Включая конфиг и пул. Это верно: это не на уровне конфигурации начального уровня приложения, и вы должны исправить некоторый пользовательский код, который будет включен в качестве зависимости в окончательный jar-файл uber для целевого приложения, связанного с привязкой.
Более подробную информацию о том, как их создать, можно найти здесь в Документах: https://docs.spring.io/spring-cloud-stream-app-starters/docs/Einstein.RC1/reference/htmlsingle/
С помощью Spring Integration существует множество вариантов внутреннего хранилища. Вы можете прочитать больше об этом в Spring-Cloud-Starter-Stream-Process-Aggregator / README.
Документы Spring Integration по этому вопросу включены в качестве ссылки, и раздел Gemfire может быть полезен.
Было бы также полезно рассмотреть MessageGroupStore
реализация, так как это основа для варианта хранения в aggregator
,