在两个Spring引导应用程序之间共享ProjectReactor的TopicProcessor和Flux

时间:2018-07-04 11:44:26

标签: spring-boot project-reactor

我有两个共享一个公共模块的spring boot应用程序。在该通用模块中,我从ProjectReactor创建了TopicProcessor和Flux

    @Bean
    public TopicProcessor<?> topicProcessor() {
        return TopicProcessor.<?>builder().autoCancel(false).share(true).build();
    }

    @Bean
    public Flux<?> eventFlux(TopicProcessor<?> topicProcessor) {
       return topicProcessor.publish().autoConnect();
    }

然后,我将TopicProcessor注入两个Spring Boot实例(Spring Boot实例A和Spring Boot实例B)中,并将Flux bean注入其中的一个(Spring Boot实例B)中。

因此,当我从实例B发送事件时,便能够在Flux中接收它。但是,如果我从实例A发送事件,则无法在实例B中接收到事件。

这是因为TopipcProcessor在实例A和实例B中是不同的bean。是否可以在两个实例之间共享该bean?

1 个答案:

答案 0 :(得分:2)

不,这是不可能的,仅仅是因为不支持在两个Spring Boot应用程序之间共享bean。