- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将消息发布到队列,然后让某些消费者仅在它包含特定 header 时才使用它,而另一个消费者在它包含另一个 header 时才使用它。
到目前为止我所做的是设置一个 header 交换,仅当它包含该 header 时才将消息路由到特定队列。
这是我用来设置交换器、队列和监听器的配置:
<!-- Register Queue Listener Beans -->
<bean id="ActionMessageListener" class="com.mycee.Action" />
<!-- Register RabbitMQ Connections -->
<rabbit:connection-factory
id="connectionFactory"
port="${rabbit.port}"
virtual-host="${rabbit.virtual}"
host="${rabbit.host}"
username="${rabbit.username}"
password="${rabbit.password}"
connection-factory="nativeConnectionFactory" />
<!-- Register RabbitMQ Listeners -->
<rabbit:listener-container
connection-factory="connectionFactory"
channel-transacted="true"
requeue-rejected="true"
concurrency="${rabbit.consumers}">
<rabbit:listener queues="${queue.myqueue}" ref="ActionMessageListener" method="handle"/>
</rabbit:listener-container>
<!-- Setup RabbitMQ headers exchange -->
<rabbit:headers-exchange id="${exchange.myexchange}" name="${exchange.myexchange}">
<rabbit:bindings>
<rabbit:binding queue="${queue.myqueue}" key="action" value="action3" />
</rabbit:bindings>
</rabbit:headers-exchange>
<rabbit:admin connection-factory="connectionFactory"/>
<rabbit:queue name="${queue.myqueue}" />
所以我使用 action3 的键和 action3 的值将 myqueue 绑定(bind)到 myexchange。
现在当我在交易所发布时:
ChannelAwareMessageListener 正在使用它,即使操作设置为 action1 而不是 action3
public class Action implements ChannelAwareMessageListener {
@Override
public void onMessage(Message message, Channel channel) throws Exception {
System.out.println(message.toString());
}
}
要么我没有正确使用 header 交换,要么我没有正确配置它 - 有什么建议吗?
最佳答案
不是这样的;每个消费者都需要一个单独的队列。参见 the tutorial .
当多个消费者从同一个队列中消费时,他们会竞争所有消息;您不能在消费者端选择消息; “选择”是由交换通过将消息路由到特定队列来完成的。
关于java - 使用 RabbitMQ 和 SpringAMQP 仅使用具有特定 header 的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25489301/
我正在使用带有 Rabbitmq 模板的 Spring AMQP。如何将消息直接发送到省略 Exchange 的队列?我该怎么做? 最佳答案 How can i do it? 你不能;发布者不知道队列
我将 spring amqp 与多方法监听器一起使用,如下所示: @RabbitListener(queues = PLATFORM_COMMAND_QUEUE) @Component public
我有 3 个队列。 队列主 队列重试(3次由代码控制) 尝试 3 次后排队保存错误消息。 它工作正常...但是如果我由于任何原因发送了错误的 json 消息,例如: { "name":"alan","
我正在使用 SpringBoot 启动连接到 RabbitMQ 队列的 SpringAMQP 应用程序。我希望能够从生产者发送消息,指定回复队列,以便消费者只需要发送而不必调查目的地(因此不必在消息本
我是rabbitMq和Spring AMQP的新手。我正在从头开始构建一个新项目。对于其中一个组件,我们使用rabbit-Mq 作为消息代理。 在这个项目中,主要所有开发都是在 Java 中进行的。我
我希望能够使用 Spring AMQP 来设置高可用性策略。 通过 Web 界面配置 RabbitMQ (v3.1.4) 时,您可以在“管理”下选择设置策略。 这些策略适用于策略模式选择的所有队列。
我使用以下配置安装了 rabbitMQ [ {rabbit, [ {ssl_listeners, [5671]}, {ssl_options, [{cacertfile,"C:
我正在尝试将消息发布到队列,然后让某些消费者仅在它包含特定 header 时才使用它,而另一个消费者在它包含另一个 header 时才使用它。 到目前为止我所做的是设置一个 header 交换,仅当它
我是一名优秀的程序员,十分优秀!