我有一些问题,试图了解类型标头的交换是如何工作的。
只有一个交换,myExchange
三个队列:
绑定:
我希望消息的标题具有多个值;test1、test2、test3 的任意组合(例如:单独 test1、test1 和 test2、test3 和 test2 等)
myQueue3只接收具有MyHeader的消息:[test1、test2、test3]。我希望myQueue3也能获得test1和test2的消息。
myQueue1 只有在它们具有 myHeaders:[test1] 时才会接收消息。我希望 myQueue1 也能获得消息,例如 test1 和 [test1, test2]。
有没有办法实现这种行为?非常感谢。
我同意这些评论,我正在努力实现一些目前不被支持的东西。我将使用路由键。
对此,我有一招。
绑定:
myQueue1将接收标题包含{test1:true}的所有消息。
myQueue2 将接收标头包含的所有消息 {test2: true}。
myQueue3将接收标头包含{test1: true}、{test2: true}或{test3: true}之一的所有消息。
我更喜欢这样,因为路由关键字被限制在255个字节,但是头中元素的数量限制很高。
对于性能,我不知道什么是最好的。
在Rabbitmq中给出 交换 两个名为default和specific的队列 总共有两个路由密钥。具体而全面* 采用以下方案 我试图实施以下内容(没有成功) > 如果路由键为“all.specific”的邮件到达,则必须路由到特定队列 如果具有路由关键字“all.generic”的消息到达,则必须将其路由到默认队列 我尝试了两种不同的方法 1)交换类型“直接” 我无法在路由键中使用通配符,因此无
我有点迷茫,正在尝试实施话题交流,不确定需要什么。 我想有几个路由键和一个主题交换(默认的amq.topic)。我的钥匙是: 创建customer.app 创建customer.app 客户。*.创建 我希望我的队列是持久的,但是我需要1个“客户”队列还是2个appA和appB队列?我已经弄清楚了我的发布者;连接、交换声明、基本发布。 但我正在与消费者斗争。假设我想打开3个控制台,上面提到的每个路
我正在尝试编写一个应用程序,测试将N个交换绑定到内存、IO等相同队列的效果。 所有测试都使用“主题”交换类型。我遇到的问题是,当我使用多个exchange进行测试时,我没有收到我发布回的所有消息。但是,当我使用1 exchange时,我会收到所有消息。 你知道为什么会这样吗? 谢谢 编辑: 我有一个队列,它使用相同的绑定键绑定到两个“主题”交换: *。系统日志# #。系统错误 我将向每个excha
我一直在尝试使用RabbitMQ,但遇到了以下问题(与此非常类似:RabbitMQ中的主题交换与直接交换)。 我需要密集地广播大约800种类型的消息(因此每种消息类型都会有很多消费者),我想知道以下哪种方法更好: > 创建一个直接交换,在该交换中,消息将使用路由密钥(消息类型名称)发送,每个消费者都将通过绑定了相应路由密钥的临时队列连接到该交换。(因为没有像“key1.key2.*”这样复杂的路由
我有一个场景,我需要执行一系列流程,每个步骤都在独立的应用程序中完成和扩展。我正在为所有交换使用主题交换。当前拓扑如下所示: P- 我们正在“版本化”队列,以处理可能影响消息结构的需求更改。绑定可能如下所示: 步骤1。exchange绑定到步骤1。v1。使用绑定键step1排队。v1 步骤1。exchange绑定到步骤1。v2。使用绑定键step1排队。v2级 还有其他与版本无关的绑定模式也使局部
我是一个新手,试图在java客户端中实现标头交换。我知道这就是“x匹配”绑定参数的用途。当“x匹配”参数设置为“任何”时,只需一个匹配的标头值就足够了。或者,将“x匹配”设置为“所有”要求所有值必须匹配。但是任何人都可以为我提供一个框架代码以更好地理解。