Spring boot 为生产者和消费者动态绑定目标(Spring)

Spring boot 为生产者和消费者动态绑定目标(Spring),spring-boot,spring-integration,spring-cloud,spring-cloud-stream,spring-messaging,Spring Boot,Spring Integration,Spring Cloud,Spring Cloud Stream,Spring Messaging,我正在尝试向目的地名称位于数据库中的频道/主题发送和接收消息,以便在运行时添加/修改/删除它们,但我很惊讶我在web上几乎没有发现什么。我正在使用Spring Cloud Streams来允许更改底层代理。 要将消息发送到动态绑定的目的地,我将使用BinderAwareChannelResolver.resolveDestination(target).send(message),但我还没有找到类似的方法来接收消息。 我的问题是: 1.有类似的吗? 2.如何像@StreamListener那样定

我正在尝试向目的地名称位于数据库中的频道/主题发送和接收消息,以便在运行时添加/修改/删除它们,但我很惊讶我在web上几乎没有发现什么。我正在使用Spring Cloud Streams来允许更改底层代理。

要将消息发送到动态绑定的目的地,我将使用
BinderAwareChannelResolver.resolveDestination(target).send(message)
,但我还没有找到类似的方法来接收消息。
我的问题是:
1.有类似的吗?
2.如何像
@StreamListener
那样定期处理消息?
3.虽然没有那么重要,但如果没有订户,您能自动创建订户吗?

谢谢你的帮助

这超出了框架最初设计的范围。但我会进一步质疑你的架构。如果你真的想订阅无限量的目的地,我想知道为什么?基本业务需求是什么

请记住,即使我们以某种方式这样做,也需要为每个新的目的地动态创建一个消息侦听器容器,这会引发更多的问题,例如,由于最终会耗尽资源,这样的容器必须生存多久


但是,如果您只是询问是否有可能将多个目的地映射到一个通道,以便所有消息都转到同一个消息处理程序(例如StreamListener),那么您可以简单地使用input
destination
属性并定义由comas分隔的多个目的地。

该体系结构已经实施。目前,共有2个客户机。消息将由服务X发送到一个队列,该队列专门为客户机分配,因此,如果新客户机进入,则应创建一个不同的通道,现在该客户机的消息应转到其新通道。单个服务Y根据消息来自的通道处理这些消息,并将新消息发送到不同的通道(也在运行时确定为可以在任意点添加新服务)。由于Y根据它们来自何处处理消息,我猜我必须向席发送的消息添加数据,意思是“服务X到一个通道”。另外,您对使用BinderAwareChannelResolver.resolveDestination(target).send(message)将消息发送到动态绑定的通道有何看法?顺便说一句,我发现