我想创建一个公共项目(使用spring cloud stream),根据消息内容动态地将消息路由到不同的(消费者)项目。(rabbitmq作为消息代理)Spring Cloud Stream支持它吗?如果不支持,有什么建议的方法来实现它吗?谢谢
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
woobm2wo2#
您可以通过将spring.cloud.stream.dynamicDestinations属性设置为目标名称列表(如果您事先知道名称)或将其保留为空来实现此目的。BinderAwareChannelResolver负责为这些动态目标动态创建/绑定出站通道。有一个开箱即用的router应用程序可以做类似的事情。
spring.cloud.stream.dynamicDestinations
BinderAwareChannelResolver
router
2条答案
按热度按时间hgc7kmma1#
您可以将StreamBridge与topicname一起使用,spring-cloud会在运行时自动将其与destination绑定。
https://docs.spring.io/spring-cloud-stream/docs/current/reference/html/spring-cloud-stream.html#_streambridge_and_dynamic_destinations
woobm2wo2#
您可以通过将
spring.cloud.stream.dynamicDestinations
属性设置为目标名称列表(如果您事先知道名称)或将其保留为空来实现此目的。BinderAwareChannelResolver
负责为这些动态目标动态创建/绑定出站通道。有一个开箱即用的
router
应用程序可以做类似的事情。