我正在尝试向目标名称在数据库中的频道/主题发送和接收消息,因此可以在运行时添加/修改/删除它们,但令我感到惊讶的是,我在网络上找不到任何内容。我正在使用Spring Cloud Streams来更改基础代理。
要将消息发送到动态绑定的目的地,我将使用BinderAwareChannelResolver.resolveDestination(target).send(message)
,但是我还没有找到可以像它那样接收消息的东西。
我的问题是:
1.有类似的东西吗?
2.如何像@StreamListener
一样定期处理邮件?
3.不是那么重要,但是如果没有订阅者,您是否可以自动创建订阅者?
感谢您的帮助!
答案 0 :(得分:1)
这有点超出框架原始设计的范围。但是我会进一步质疑您的体系结构。 。 。如果您真的希望订阅无限数量的目的地,我想知道为什么吗?基本业务需求是什么?
请记住,即使我们以某种方式执行此操作,也将需要为每个新目的地动态创建一个消息侦听器容器,这将引发更多问题,例如,自最终您将不得不将该容器生存多长时间后,资源不足。
但是,如果您只是询问将多个目标映射到单个通道的可能性,以便所有消息都转到同一消息处理程序(例如StreamListener),那么您可以简单地使用输入destination
属性并定义多个目的地以逗号分隔。