Spring 云流功能支持不起作用

Spring Cloud Stream Function support does not work

我正在尝试将 Spring Cloud Stream 与 topic 中描述的功能一起使用。但是没用。

我的函数:

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class);
    }

    @Bean
    public Consumer<String> consumer() {
        return s -> System.out.println(s);
    }
}

然后我推送消息。通过使用 @Output 注释制作的制作人到 consumer-in-0 频道:

pulic interface Source {
    @Output("source")
    MessageChannel producer();
}

source.producer().send(MessageBuilder.withPayload("Hello").build());

我的 yaml 频道配置:

spring:
    cloud:
        function:
            definition: consumer
        stream:
            bindings:
                source:
                    destination: consumer-in-0

如果我通过 @Input 配置使用消费者 - 一切正常。 同样在 rabbitmq 管理器中,我看到生产者正在工作并发送消息,但消费者不使用它们。 帮我取悦别人。

P.S。我也用 Spring WebFlux

您不能在同一应用程序中混合使用 EnableBinding 和功能模型。如果您将生产者和消费者放在同一个应用程序中,您可能希望使用 Supplier 转换生产者。例如

@Bean
public Supplier<String> supplier() {
  return () -> MessageBuilder.withPayload("Hello").build();

}

然后,

spring:
    cloud:
        function:
            definition: supplier;consumer
        stream:
            bindings:
                supplier-out-0:
                    destination: consumer-in-0