Rabbitmq延迟队列(两个exchange,多个队列)

    <!-- ################ 订单通知服务消费者配置 ################ -->
	<!-- 创建rabbit ConnectionFactory,连接服务器 -->
	<rabbit:connection-factory id="connectionFactory"
		host="${rabbitmq.host}" username="${rabbitmq.username}" password="${rabbitmq.password}" 
		port="${rabbitmq.port}" virtual-host="${rabbitmq.vhost}" />
	
	<!-- 队列声明 -->
	<rabbit:queue id="queue_TestNotify" name="queue_TestNotify" durable="true" auto-delete="false" exclusive="false"/>
	
	<!-- 监听处理器 -->
	<bean id="tradePayNotifyListener" class="test.prj.main.rabbit.TradePayNotifyListener" />
	
	<!-- 监听器acknowledge=manual表示手工确认消息已处理(异常时可以不确认消息),auto表示自动确认(只要不抛出异常,消息就会被消费) -->
	<rabbit:listener-container connection-factory="connectionFactory" acknowledge="manual">
		<rabbit:listener queues="queue_TestNotify" ref="tradePayNotifyListener" method="onMessage"/>
	</rabbit:listener-container>
	
	
	<!-- ################ 延迟队列生产者配置 ################ -->
	<rabbit:admin connection-factory="connectionFactory" />
    <bean id="jsonMessageConverter" class="org.springframework.amqp.support.converter.Jackson2JsonMessageConverter" />
    <rabbit:template id="rabbitTemplateDelay" connection-factory="connectionFactory" exchange="trade_direct_delay" message-converter="jsonMessageConverter"/>
     
    <rabbit:queue id="queue_TestNotify_delay_15s" name="queue_TestNotify_delay_15s" durable="true" auto-delete="false" exclusive="false">
    	<rabbit:queue-arguments>
            <entry key="x-message-ttl" value="15000" value-type="java.lang.Long"/>
            <entry key="x-dead-letter-exchange" value="trade_direct"/>
            <entry key="x-dead-letter-routing-key" value="routeKey_TradePayNotify"/>
        </rabbit:queue-arguments>
    </rabbit:queue>
    
    <rabbit:queue id="queue_TestNotify_delay_30s" name="queue_TestNotify_delay_30s" durable="true" auto-delete="false" exclusive="false">
    	<rabbit:queue-arguments>
            <entry key="x-message-ttl" value="30000" value-type="java.lang.Long"/>
            <entry key="x-dead-letter-exchange" value="trade_direct"/>
            <entry key="x-dead-letter-routing-key" value="routeKey_TradePayNotify"/>
        </rabbit:queue-arguments>
    </rabbit:queue>
   
    <!-- work exchange -->
	<rabbit:direct-exchange name="trade_direct" durable="true" auto-delete="false">
		<rabbit:bindings>
		    <rabbit:binding queue="queue_TestNotify" key="routeKey_TradePayNotify"/>
		</rabbit:bindings>
	</rabbit:direct-exchange>
	
	<!-- delay exchange -->
	<rabbit:direct-exchange name="trade_direct_delay" durable="true" auto-delete="false">
		<rabbit:bindings>
		    <rabbit:binding queue="queue_TestNotify_delay_15s" key="routeKey_TradePayNotify_delay_15s"/>
		    <rabbit:binding queue="queue_TestNotify_delay_30s" key="routeKey_TradePayNotify_delay_30s"/>
		</rabbit:bindings>
	</rabbit:direct-exchange>


实现类似于支付宝通知机制,例如:15s通知一次,30s通知一次,等等。


问题:通知次数已超过最大次数,丢弃队列信息?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值