通过xml方式配置Rabbitmq

本文介绍了如何在Spring框架4.3.16.RELEASE版本下,结合spring-rabbit 1.7.8.RELEASE,通过XML配置来设置RabbitMQ的相关参数,特别是强调了队列参数类型的设置细节,特别提及了配置死信队列和TTL超时时间的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于 spring 4.3.16.RELEASE和spring-rabbit 1.7.8.RELEASE

     <dependency>
            <groupId>org.springframework.amqp</groupId>
            <artifactId>spring-rabbit</artifactId>
            <version>1.7.8.RELEASE</version>
     </dependency>

对于队列参数值的类型需要小心,必须单独指定,具体可见配置死信队列ttl超时时间出的方式

<?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">

    <bean id="jsonMessageConverter" class="org.springframework.amqp.support.converter.Jackson2JsonMessageConverter" />

    <rabbit:connection-factory
            id="connectionFactory"
            host="127.0.0.1"
            port="5672"
            username="dy"
            password="dyqy0326"
            virtual-host="qy"
            publisher-confirms="true"
    />
    <rabbit:admin connection-factory="connectionFactory" />

    <!-- 给模板指定转换器 --><!-- mandatory必须设置true,return callback才生效 -->
    <rabbit:template id="amqpTemplate"	connection-factory="connectionFactory"
                     confirm-callback="confirmCallBackListener"
                     return-callback="returnCallBackListener"
                     mandatory="true"
    />

    <rabbit:queue name="CONFIRM_TEST" />

    <rabbit:direct-exchange name="DIRECT_EX" id="DIRECT_EX" >
        <rabbit:bindings>
            <rabbit:binding queue="CONFIRM_TEST" />
        </rabbit:bindings>
    </rabbit:direct-exchange>

    <!-- 死信队列 -->
    <rabbit:queue name="dead-letter-queue">
        <rabbit:queue-arguments>
            <entry key="x-message-ttl">
                <value type="java.lang.Long">5000</value>
            </entry>
            <entry key="x-dead-letter-exchange" value="common-exchange" />
            <entry key="x-dead-letter-routing-key" value="common-queue" />
        </rabbit:queue-arguments>
    </rabbit:queue>

    <!-- 死信队列转发到的普通队列 -->
    <rabbit:queue name="common-queue" />
    <rabbit:direct-exchange name="common-exchange"
                            durable="false" auto-delete="false" id="common-exchange">
        <rabbit:bindings>
            <rabbit:binding queue="common-queue" />
        </rabbit:bindings>
    </rabbit:direct-exchange>

    <!-- 配置consumer, 监听的类和queue的对应关系 -->
    <rabbit:listener-container
            connection-factory="connectionFactory" acknowledge="manual" >
        <rabbit:listener queues="CONFIRM_TEST" ref="receiveConfirmTestListener" />
        <rabbit:listener queues="common-queue" ref="receiveConfirmTestListener" />
    </rabbit:listener-container>
</beans>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值