Spring集成RabbitMQ-连接和消息模板
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-连接和消息模板的更多相关文章
- Spring Boot实战三:集成RabbitMQ,实现消息确认
Spring Boot集成RabbitMQ相比于Spring集成RabbitMQ简单很多,有兴趣了解Spring集成RabbitMQ的同学可以看我之前的<RabbitMQ学习笔记>系列的博 ...
- rabbitMQ第五篇:Spring集成RabbitMQ
前面几篇讲解了如何使用rabbitMq,这一篇主要讲解spring集成rabbitmq. 首先引入配置文件org.springframework.amqp,如下 <dependency> ...
- RabbitMQ第四篇:Spring集成RabbitMQ
前面几篇讲解了如何使用rabbitMq,这一篇主要讲解spring集成rabbitmq. 首先引入配置文件org.springframework.amqp,如下 <dependency> ...
- spring集成rabbitMq(非springboot)
首先 , pom文件需要加入spring集成rabbitMq的依赖: <dependency> <groupId>org.springframework.amqp</gr ...
- spring集成RabbitMQ配置文件详解(生产者和消费者)
1,首先引入配置文件org.springframework.amqp,如下: <dependency> <groupId>org.springframework.amqp< ...
- Spring 集成 RabbitMQ
pom.xml <dependency> <groupId>org.springframework.amqp</groupId> <artifactId> ...
- SpringBoot集成RabbitMQ并实现消息确认机制
原文:https://blog.csdn.net/ctwy291314/article/details/80534604 RabbitMQ安装请参照RabbitMQ应用 不啰嗦直接上代码 目录结构如下 ...
- 钉钉机器人集成Jenkins推送消息模板自定义发送报告
一.由于公司同样也使用了钉钉.那么在做Jenkins集成自动化部署的时候,也是可以集成钉钉的. 那种Jenkins下载钉钉插件集成,简单设置就可以完成了.我们今天要做的是,定制化的发送消息. 钉钉推送 ...
- spring集成freemaker 制作短信模板
1.配置configure的Bean,Bean中指定了模板文件的路径和刷新时间等配置. <!-- 配置freeMarkerConfigurer进行属性值的注入 --> <bean i ...
随机推荐
- Git在tortoiseGit以及eclipse的使用方法
一.Git安装与简单使用 1.安装git,tortoiseGit 2.创建SSH Key 打开Git Bash,然后输入ssh-keygen生成公钥和私钥: 3.生成ppk文件. 打开puttykey ...
- python常用模块(2)
之前学了两个常用的模块collections和re模块今天我们接着学习其他几个常用模块.都是比较常用的之前的学习或多或少也有所接触比如说时间模块等. 预习: 写一个验证码 首先 要有数字 其次 要有字 ...
- hdu--1421--dp--搬寝室
注意:dp[i][j]初始化的时候不能小于0xffffff明显大于2^15但是吧再小就WA了 #include<iostream> #include<algorithm> #i ...
- CronJobs
一.概念 CronJobs提供了在特定的时间或者间隔内处理业务逻辑的方法.一般创建一个Cronjob有两种方式,第一种是定义Java类,由Hybris生成脚本并加入数据库.第二种是直接编写gr ...
- CharMatch(括号匹配)
用自己定义的链栈实现括号匹配 #include"LinkStack.h" bool Match(char *s) { LinkStack<char> tmpS; cha ...
- 【机器学习PAI实践一】搭建心脏病预测案例
一.背景 心脏病是人类健康的头号杀手.全世界1/3的人口死亡是因心脏病引起的,而我国,每年有几十万人死于心脏病. 所以,如果可以通过提取人体相关的体侧指标,通过数据挖掘的方式来分析不同特征对于心脏病的 ...
- Linux - 简明Shell编程09 - 重定向(Redirection)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash pwd > 1.log ...
- 如何解压 Mac OS X 下的 PKG 文件(网摘)
如何解压 Mac OS X 下的 PKG 文件 原文出处:[Macplay] 有时候我们可能需要解包 PKG 格式的安装文件包,在 OS X 系统下完成该操作并不需要你额外再安装软件,系统内置的命令就 ...
- python2 接口测试一般方法.
接口测试方法: 1. import requests 2. 创建一个url变量,并经访问的地址赋值给它.(包括端口后面的 接口的部分) 例如: url = "http://124.193.9 ...
- js通过添加随机数的方法,解决多张图片加载时由于缓存导致图片无法正确显示的问题
问题出现描述:当对列表中某个图片进行重新编辑时,提交后会发现图片列表仍会出现修改之前的图片,新图片并未覆盖. 问题出现原因:缓存问题. 解决办法:通过js方法,在每张图片路劲后面添加一个随机数,这样每 ...