开发者社区> 问答> 正文

spring rabbitmq 延时队列配置无效:报错

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:rabbit="http://www.springframework.org/schema/rabbit"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/rabbit
       http://www.springframework.org/schema/rabbit/spring-rabbit-1.7.xsd">

    <!-- 连接配置 -->
    <rabbit:connection-factory id="connectionFactory"
                               host="${rabbitmq.host}"
                               username="${rabbitmq.username}"
                               password="${rabbitmq.password}"
                               port="${rabbitmq.port}"
                               virtual-host="${rabbitmq.vhost}"/>

    <rabbit:admin connection-factory="connectionFactory"/>

    <!-- spring template声明-->
    <rabbit:template id="amqpTemplate"
                     connection-factory="connectionFactory"
                     message-converter="jsonMessageConverter"/>

    <!-- 消息对象json转换类 -->
    <bean id="jsonMessageConverter"
          class="org.springframework.amqp.support.converter.Jackson2JsonMessageConverter"/>


    <!--延迟队列:没人消费-->
    <rabbit:queue name="delayQueue" durable="true">
        <rabbit:queue-arguments>
            <entry key="x-dead-letter-exchange" value="directExchange"/>
            <entry key="x-dead-letter-routing-key" value="taskRoutingKey"/>
        </rabbit:queue-arguments>
    </rabbit:queue>

    <!--死信队列:过期的消息会被路由到该队列,然后被消费-->
    <rabbit:queue name="taskQueue" durable="true" />

    <rabbit:direct-exchange name="directExchange" durable="true">
        <rabbit:bindings>
            <rabbit:binding queue="delayQueue" key="delayRoutingKey"/>
            <rabbit:binding queue="taskQueue" key="taskRoutingKey"/>
        </rabbit:bindings>
    </rabbit:direct-exchange>

    <bean id="messageReceiver" class="com.huweitech.service.rabbitmq.impl.MQConsumerImpl"/>

    <rabbit:listener-container connection-factory="connectionFactory">
        <rabbit:listener ref="messageReceiver" queues="taskQueue"/>
    </rabbit:listener-container>
</beans>

这个是我的配置,我在rabbit控制台上看到消息发出去了,但是感觉像一发出去就被丢弃了,求各位指点。

展开
收起
kun坤 2020-06-14 06:36:42 864 0
1 条回答
写回答
取消 提交回答
  • 感觉像一发出去就被丢弃了……

    感觉?

    ######我博客里有整合例子######

    留个联系方式   有事情请教您

    2020-06-14 06:36:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
RocketMQ Client-GO 介绍 立即下载
RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载