Как настроить 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,

Другие вопросы по тегам