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. Ext js Grid

    Ext.onReady(function () {                   var proxy = new Ext.data.HttpProxy({                  ur ...

  2. Jenkins: 配置信息变更历史

    像 Jenkins 这样的系统,使用的过程就是配置文件变更的过程.如果能够对配置文件的变更进行跟踪管理,将极大的提高系统的可用性.Job Configuration History 插件就是这么一款实 ...

  3. Eclipse中tomcat配置

    配置这两个东西 tomcat,在eclipse中启动 tomcat 才会可以访问   来自为知笔记(Wiz)

  4. 黑科技:纯CSS定制文本省略

    作者:weilong,腾讯 web前端开发 工程师 商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. WeTest导读 拿到设计MM的设计稿,Oh NO,点点点后面又双叒叕加内容了,弹丸 ...

  5. SVN 、Git、Github的使用

    1.1 SVN 总结以及使用建议 每一次保存历史记录实际上就是一次提交 什么时候去保存历史记录? 完成了一个具体的功能模块 代码运行没有bug 当天工作结束提交一次 没有 bug 的前提下去提交一次 ...

  6. Gitlab CI 自动部署 asp.net core web api 到Docker容器

    为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成. ...

  7. 解决Coursera视频无法观看

    修改电脑的 C:\Windows\System32\drivers\etc 目录下的host文件, 在最后添加一行: 52.84.246.72 d3c33hcgiwev3.cloudfront.net

  8. python ——面向对象进阶

    1.staticmethod和classmethod staticmethod  静态方法: 让类里的方法,直接被类调用,就像正常的函数一样 宝宝,男 博博,女 海娇,男 海燕,女 海东,男 海峰,男 ...

  9. vue-cli安装

    近期梳理了一下win和linux下安装vue项目,总结一下,希望对于看的人有帮助,废话不多说. Linux下安装 因为我用的是deepin,所以再此就不演示了.首先电脑上已经安装好了node和npm了 ...

  10. phpexcel导入excel处理大数据

    先下载对应phpExcel 的包就行了https://github.com/PHPOffice/PHPExcel下载完成 把那个Classes 这个文件夹里面的 文件跟文件夹拿出来就好了.直接写到PH ...