rabbitmq Spring云流支持动态路由消息

qyuhtwio  于 2022-11-23  发布在  RabbitMQ
关注(0)|答案(2)|浏览(142)

我想创建一个公共项目(使用spring cloud stream),根据消息内容动态地将消息路由到不同的(消费者)项目。(rabbitmq作为消息代理)
Spring Cloud Stream支持它吗?如果不支持,有什么建议的方法来实现它吗?谢谢

hgc7kmma

hgc7kmma1#

您可以将StreamBridge与topicname一起使用,spring-cloud会在运行时自动将其与destination绑定。

@Autowired
private final StreamBridge streamBridge;
  
public void sendDynamically(Message message, String topicName) {
    streamBridge.send(route, topicName);
}

https://docs.spring.io/spring-cloud-stream/docs/current/reference/html/spring-cloud-stream.html#_streambridge_and_dynamic_destinations

woobm2wo

woobm2wo2#

您可以通过将spring.cloud.stream.dynamicDestinations属性设置为目标名称列表(如果您事先知道名称)或将其保留为空来实现此目的。BinderAwareChannelResolver负责为这些动态目标动态创建/绑定出站通道。
有一个开箱即用的router应用程序可以做类似的事情。

相关问题