RabbitMq学习笔记

版本说明

  1. spring-rabbit:1.7.3.RELEASE
  2. spring-context:4.3.9.RELEASE

pom.xml引入

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>
<dependency>
      <groupId>org.springframework.amqp</groupId>
      <artifactId>spring-rabbit</artifactId>
      <version>${org.spring-rabbit.version}</version>
    </dependency>

spring配置

    <rabbit:connection-factory id="connectionFactory"
                               host="${rabbit.host}"
                               port="${rabbit.port}"
                               username="${rabbit.username}"
                               password="${rabbit.password}"
                               publisher-confirms="true"
    />
    <rabbit:admin connection-factory="connectionFactory" />
    <!-- 给模板指定转换器 -->
    <rabbit:template id="amqpTemplate" exchange="mq-exchange"
                     connection-factory="connectionFactory"
                     confirm-callback="comfirmCallBackListener"
                     return-callback="returnCallBackListener"
                     mandatory="true"
                     message-converter="jsonMessageConverter"/>
     <!-- 队列申明 -->                
     <rabbit:queue name="queue.hello" />
     <!-- 申明交换机,通过routingkey绑定队列 -->
    <rabbit:direct-exchange name="mq-exchange" id="mq-exchange">
        <rabbit:bindings>
            <rabbit:binding queue="queue.hello" key="hello" />
        </rabbit:bindings>
    </rabbit:direct-exchange>
     <!-- 配置consumer, 监听的类和queue的对应关系 -->
    <rabbit:listener-container connection-factory="connectionFactory" >
        <!-- 下面的queue可以写多个 用,号隔开 -->
        <rabbit:listener queues="queue.hello" ref="receiveLitener"/>
    </rabbit:listener-container>                 

1、durable=”true” 说明:
如果加到<rabbit:direct-exchange> 标签中,rabbitmq服务器重启后,申明exchange丢失。
如果加到<rabbit:queue>标签中,rabbitmq服务器重启后,申明的队列以及数据全部丢失。
2、消息确认配置

publisher-confirms="true"
mandatory="true"

测试结果:
*如果消息没有到exchange,则confirm回调,ack=false
如果消息到达exchange,则confirm回调,ack=true
exchange到queue成功,则不回调return
exchange到queue失败,则回调return(需设置mandatory=true,否则不回回调,消息就丢了)*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值