0

问题:
单个spring cloud stream应用程序,
必须通过同一个api的2个主要版本发送相同的数据。

spring:
    stream:
      bindings: 
        myApiV1-out-0:
          destination: api/v1/the/topic
        myApiV2-out-0:
          destination: api/v2/the/topic

问题:
这个问题最优雅的解决方案是什么?

想法/我想要的:
我的应用程序应该使用流桥发送到通用绑定。
这个绑定应该消耗我的内部模型和

  • 将其转换为 api 模式 V1 并通过 myApiV1-out-0 发送
  • 将其转换为 api 模式 V2 并通过 myApiV2-out-0 发送

这是我必须自己实现的还是有某种模式?

4

1 回答 1

0

我认为StreamBridge在这个用例中使用 Spring Cloud Stream 时使用是正确的模式。这是一个伪代码:

@Bean
public Consumer<String> receive() {

// convert to API mode V1.
streamBridge.send("myApiV1-out-0", conveted-data-v1);

// convert to API mode V2.
streamBridge.send("myApiV2-out-0", conveted-data-v2);

}
于 2021-09-29T14:08:41.337 回答