【问题标题】:Using Spring Integration Router with Spring Cloud Stream将 Spring Integration Router 与 Spring Cloud Stream 一起使用
【发布时间】:2020-04-06 04:49:13
【问题描述】:

我一直在尝试将 Spring Integration 的 @Router 与带有 Kafka 绑定的 Spring Cloud Stream 一起使用。我的理解是,当您从带有@Router 注释的方法返回通道名称的List 时,它们应该生成到指定的Kafka 主题。但我没有看到正在生成的消息。

Spring Integration 的 @Router 是否与 Spring Cloud Stream 一起使用。如果没有,还有什么替代方法以及如何以编程方式路由到运行时选择的通道?

【问题讨论】:

    标签: spring-boot spring-integration spring-cloud-stream spring-cloud-stream-binder-kafka


    【解决方案1】:

    是什么让你相信 Spring Integration @Router 对 Spring Cloud Stream 有任何影响?这是一个完全不同的框架。

    是的,Spring Cloud Stream 中有路由 FROM 和 TO 的机制,它们被描述为 here。

    我认为您的用例感兴趣的特定部分是 Routing FROM,但请考虑阅读完整部分以了解所使用的差异和机制。

    【讨论】:

    • 感谢您的回答。显然我的印象是 SI 和 SCSt 组件可以一起工作,因为 SCSt 是基于 SI 的。我错了。谢谢你的澄清。我试过BinderAwareChannelResolver,它按预期工作。但是我很好奇我们是否可以真正路由到绑定而不是主题。 BinderAwareChannelResolver 需要频道名称/主题。是否可以改用绑定名称?
    • 您正在路由到绑定。在 BinderAwareChannelResolver 的情况下,通道和绑定名称是相同的
    • 因此,如果我有一个绑定名称 'fooBar-01' 和目标 'foo.kafka.topic' 并且如果我使用 BinderAwareChannelResolver 和 'fooBar-01',它会将消息发送/生成到'foo.kafka.topic'?如果我有一个@StreamListener 将“fooBar-02”与相同的目标“foo.kafka.topic”绑定,它会被调用/使用消息吗?
    • 是的,如果您通过 destination 属性将绑定映射到目的地
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 2018-08-28
    • 2019-01-11
    • 1970-01-01
    • 2020-10-24
    • 2018-04-28
    相关资源
    最近更新 更多