ConnectionFactory

  • ConnectionFactory是RabbitMQ服务掌握连接Connection生杀大权的重要组件

  • 有了它,就可以创建Connection(org.springframework.amqp.rabbit.connection.Connection)

  • CachingConnectionFactory是仅有的默认会创建一个能够被应用共享的连接代理,下图是CachingConnectionFactory的继承关系

  • 上篇提过,在CachingConnectionFactory的构造函数中,可以赋值hostname,username和passoword等

  • Channel这个概念应该熟悉,可以认为是一个连接通道,CachingConnectionFactory中默认最多可以缓存25个Channel,也可以通过方法setChannelCacheSize()设置

下面是构造CachingConnectionFactory和创建Connection的代码

当然,我们使用XML配置文件的方式也可以实现同样的效果

这还没完,使用了Spring-rabbitmq,我们还可以这样定义

这是使用了RabbitMQ的命名空间定义的,这里除了定义hostname,username等,还定义了channel-cache-size,这就是我们前面说的默认值是25的属性。

消息发送的确认和返回

使用CachingConnectionFactory的方法setPublisherConfirms和setPublisherReturns设置为true,则创建的Channel就会回传这些属性

Connection和Channel监听器

Connection和Channel分别有对应的监听器接口ConnectionListener和ChannelListener,在CachingConnectionFactory上可以注册这两个监听器的实现类。
这两个接口可以监听有关Connection和Channel生命周期已经相关事件,比如创建、关闭等。
下面分别是ConnectionListener和ChannelListener的源码

RabbitTemplate

Spring amqp有AmqpTemplate一个具体实现类,那就是RabbitTemplate

可以使用RetryTemplate为RabbitTemplate配置重试相关的参数

通过XML形式配置重试参数

  • initialInterval是重试的重试间隔时间

  • maxInterval是重试最大间隔时间

  • multiplier是从初始值到最大的增长倍数,其实我们还可以配置SimpleRetryPolicy来指定重试的次数

通过Java配置类形式配置重试参数

如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!如果您想持续关注我的文章,请扫描二维码,关注JackieZheng的微信公众号,我会将我的文章推送给您,并和您一起分享我日常阅读过的优质文章。

Spring集成RabbitMQ-连接和消息模板的更多相关文章

  1. Spring Boot实战三:集成RabbitMQ,实现消息确认

    Spring Boot集成RabbitMQ相比于Spring集成RabbitMQ简单很多,有兴趣了解Spring集成RabbitMQ的同学可以看我之前的<RabbitMQ学习笔记>系列的博 ...

  2. rabbitMQ第五篇:Spring集成RabbitMQ

    前面几篇讲解了如何使用rabbitMq,这一篇主要讲解spring集成rabbitmq. 首先引入配置文件org.springframework.amqp,如下 <dependency> ...

  3. RabbitMQ第四篇:Spring集成RabbitMQ

    前面几篇讲解了如何使用rabbitMq,这一篇主要讲解spring集成rabbitmq. 首先引入配置文件org.springframework.amqp,如下 <dependency> ...

  4. spring集成rabbitMq(非springboot)

    首先 , pom文件需要加入spring集成rabbitMq的依赖: <dependency> <groupId>org.springframework.amqp</gr ...

  5. spring集成RabbitMQ配置文件详解(生产者和消费者)

    1,首先引入配置文件org.springframework.amqp,如下: <dependency> <groupId>org.springframework.amqp< ...

  6. Spring 集成 RabbitMQ

    pom.xml <dependency> <groupId>org.springframework.amqp</groupId> <artifactId> ...

  7. SpringBoot集成RabbitMQ并实现消息确认机制

    原文:https://blog.csdn.net/ctwy291314/article/details/80534604 RabbitMQ安装请参照RabbitMQ应用 不啰嗦直接上代码 目录结构如下 ...

  8. 钉钉机器人集成Jenkins推送消息模板自定义发送报告

    一.由于公司同样也使用了钉钉.那么在做Jenkins集成自动化部署的时候,也是可以集成钉钉的. 那种Jenkins下载钉钉插件集成,简单设置就可以完成了.我们今天要做的是,定制化的发送消息. 钉钉推送 ...

  9. spring集成freemaker 制作短信模板

    1.配置configure的Bean,Bean中指定了模板文件的路径和刷新时间等配置. <!-- 配置freeMarkerConfigurer进行属性值的注入 --> <bean i ...

随机推荐

  1. Wamp之mysql密码故事

    注:有时候修改mysql密码会出现如下状况:密码改了,但新密码就是进不进去. 原因大概是语法错误.例如: >update user set password='hooray' where use ...

  2. 走过夏天,我的H5旅程,一路慢行

    <!DOCTYPE html> <!-- 文档类型声明:让浏览器,按照html5的标准对代码进行解释和执行. 文档类型声明必不可少,而且,必须放在文档最上方. 如果不写文档类型声明, ...

  3. 22. leetcode 242. Valid Anagram(由颠倒字母顺序而构成的字)

    22. 242. Valid Anagram(由颠倒字母顺序而构成的字) Given two strings s and t, write a function to determine if t i ...

  4. 14. leetcode 383. Ransom Note

    Given an arbitrary ransom note string and another string containing letters from all the magazines, ...

  5. 聪明的燕姿[JLOI2014]

    题目描述 阴天傍晚车窗外 未来有一个人在等待 向左向右向前看 爱要拐几个弯才来 我遇见谁会有怎样的对白 我等的人他在多远的未来 我听见风来自地铁和人海 我排着队拿着爱的号码牌 城市中人们总是拿着号码牌 ...

  6. mybatis example使用 and和or联合查询(转)

    这两天项目用到ibatis,碰到and or的联合查询,语句像这样的 select * from table where xxx = "xxx" and (xx1="xx ...

  7. ffmpeg编解码视频导致噪声增大的一种解决方法

    一.前言 ffmpeg在视音频编解码领域算是一个比较成熟的解决方案了.公司的一款视频编辑软件正是基于ffmpeg做了二次封装,并在此基础上进行音视频的编解码处理.然而,在观察编码后的视频质量时,发现图 ...

  8. C# 获取并判断操作系统版本,解决Win10、 Windows Server 2012 R2 读取失败的方案

    Windows 8.1, Win10之后,通过GetVersion and GetVersionEx 方法获取WIndows操作系统版本号的功能需要添加manifest文件后才能查找到,不然的话会查找 ...

  9. 巧用tab组件实现APP的布局效果

    1. 版本说明 iOS/Android支持版本 jar包版本 8.4及往后版本 2017年4月1日 2. 描述 tab布局能避免多层次钻取与返回,可以在一个报表内部进行切换,钻取层数如果过多的话,看报 ...

  10. 【环境搭建】使用Jekyll搭建Github博客

    前言 昨天花了差不多一天的时间,使用Jekyll搭建起了一套Github博客,感觉不错,也特将搭建过程记录下来,方便有需要的朋友自行搭建. 搭建步骤 本环境是在Linux环境下搭建完成的 安装前建议使 ...