![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RabbitMQ学习
star2013yk
学习从任何时候开始
展开
-
3.2 RabbitMQ整合Spring AMQP实战(五)-MessageListenerAdapter
MessageListenerAdapter 消息监听适配器1.1 基本使用方式修改RabbitMQConfig中的SimpleMessageListenerContainer代码 @Bean public SimpleMessageListenerContainer messageContainer(ConnectionFactory connectionFactory) { ...原创 2020-03-24 18:25:16 · 603 阅读 · 0 评论 -
3.1 RabbitMQ整合Spring AMQP实战(四)-SimpleMessageListenerContainer
简单消息监听内容这个类非常的强大,我们可以对它就行很多设置,对于消费者的配置项,这个类都可以满足。1.设置事务特性、事务管理器、事务属性、事务容量(并发)、是否开启事务、回滚消息等。2.设置消费者数量、最小最大数量、批量消费。3.设置消息确认和自动确认模式、是否回归队列、异常捕获handler函数。4.设置消费者标签生成策略、是否独占模式、消费者属性等。5.设置具体的监听器、消息转换器...原创 2020-03-17 13:59:16 · 550 阅读 · 0 评论 -
3.0 RabbitMQ整合Spring AMQP实战(三)- rabbitTemplate
消息模板-RabbitTemplate我们在与SpringAMQP整合的时候进行发送消息的关键类。该类提供了丰富的发送方法,包括可靠性投递消息方法、回调监听消息接口ConfirmCallback、返回值确认接口ReturnCallback等等。同样我们需要注入到Spring容器中,然后直接使用。使用1.在RabbitMQConfig中注入RabbitTemplate@Bean p...原创 2020-03-13 19:22:57 · 498 阅读 · 0 评论 -
2.9 RabbitMQ整合Spring AMQP实战(二)- SpringAMQP 声明
在Rabbit基础API里面声明一个Exchange、声明一个绑定、一个队列的方式如下:使用Spring AMQP声明,就需要用Spring AMQP 的如下模式,即声明式@Bean方式。在RabbitMQConfig中定义如下代码: /*------------------- 声明TopicExchange:topic001 队列:queue001 交换机和队列绑定 ---------...原创 2020-03-13 19:02:02 · 362 阅读 · 0 评论 -
2.8 RabbitMQ整合Spring AMQP实战(一)- 集成RabbitAdmin
RabbitMQ整合Spring AMQP实战涉及到如下几个部分集成RabbitAdminrabbitTemplateSpringAMQP 声明SimpleMessageListenerContainerMessageListenAdapterMessageConverter搭建基本的项目运行框架1.项目pom文件<?xml version="1.0" encoding...原创 2020-03-10 22:03:30 · 242 阅读 · 0 评论 -
2.7 RabbitMQ高级特效-死信队列
DLX ,Dead-Letter-Exchange利用DLX,当消息在一个队列中变成死信(dead message)之后,它能被重新publish到另外一个Exchange,这个Exchange就是DLX。消息变成死信有以下几种情况: 1.消息被拒绝(basic.reject/basic.nack)并且requeue=false 2.消息TTL过期。。 3.队列达到最大长...原创 2020-02-27 14:47:13 · 142 阅读 · 0 评论 -
2.6 RabbitMQ高级特效-TTL消息
TTL 是Time To Live的缩写,也就是生存时间。RabbitMQ支持消息的过期时间,在消息发送时可以指定消息的过期时间。RabbitMQ支持队列的过期时间,从消息入队列开始计算,只要超过了队列的超时时间配置,那么消息会总动的清除。之前的代码中设置过消息过期在控制台手动操作设置消息过期1.1 添加queue1.2 添加Exchange1.3.Exchange与Queue绑...原创 2020-02-27 14:40:28 · 141 阅读 · 0 评论 -
2.5 RabbitMQ高级特效-消费端的限流
什么是消费端的限流?假设一个场景,首先我们RabbitMQ服务器有上万条未处理的消息,我们随便打开一个消费者客户端,会出现下面情况:巨量的消息瞬间全部图送过来,但是我们单个客户端无法同时处理这么多数据!RabbitMQ提供了一种qos(服务质量保证)功能,即在非自动确认消息的前提下,如果一定数目的消息(通过基于consume或者channel设置Qos的值)未被确认前,不进行消费。void ...原创 2020-02-27 14:25:22 · 158 阅读 · 0 评论 -
2.4 RabbitMQ高级特效-消息的ACK与重回队列
消费端的手工ACK和NACK消费端进行消费的时候,如果由于业务异常我们可以进行日志的记录,然后进行补偿。如果由于服务器宕机等严重问题,那么我们就需要手工进行ACK保障消费端消费成功。消费端的重回队列消费端重回队列是为了对没有处理成功的消息,把消息重新会递给Broker!一般我们在实际应用中,都会关闭重回队列,也就是设置未False。自定义消费者代码package com.star.mov...原创 2020-02-27 13:29:32 · 288 阅读 · 0 评论 -
2.3 RabbitMQ高级特效-自定义消费者
之前的demo都是通过QueueingConsumer对象来消费消息,可以通过继承DefaultCunsumer类来处理消息。自定义消费者代码package com.star.movie.consumer;import com.rabbitmq.client.AMQP;import com.rabbitmq.client.Channel;import com.rabbitmq.clie...原创 2020-02-27 13:04:17 · 502 阅读 · 0 评论 -
2.2 Return消息机制
Return Listener用于处理一些不可路由的消息!我们的消息生产者,通过指定一个ExChange和Routingkey,把消息送达到某一个队列种去,然后我们的消费者监听队列,进行消费处理操作!但是在某些情况下,如果我们在发送消息的时候,当前的Exchange不存在或者指定的路由key路由不到,这个时候如果我们需要监听种不可达的消息,就要使用Return Listener!在基础的AP...原创 2020-02-26 21:43:26 · 181 阅读 · 0 评论 -
2.1 Confirm确认消息
消息的确认是指生产者投递消息后,如果Broker收到消息,则会给我们生产者一个应答。生产者进行接受应答,用来确认这条消息是否正常的发送到Broker,这种方式也是消息投靠信投递的核心保障!如何实现Confirm确认消息?第一步:在channel上开启确认模式:channel.confirmSelect()第二部:在channel上添加监听:addConfirmListener,监听成功和失...原创 2020-02-26 21:18:05 · 207 阅读 · 0 评论 -
2.0 几个基本概念
0.Binding-绑定 Exchange和Exchange、Queue之间的连接关系。1.Queue-消息队列消息队列,实际存储消息数据。Durability:是否持久化,Durable:是,Transient:否Auto delete:如选yes,代表当最后一个监听被移除之后,该Queue会被自动删除2.Message-消息服务器和应用之间传送的消息本质上就是一段数据,由P...原创 2020-02-24 20:19:51 · 147 阅读 · 0 评论 -
1.9 RabbitMQ-Fanout Exchange demo
demo的前置条件和1.5-RabbitMQ-速入门demo 一样。Fanout Exchange的基本概念:1.1 生产者代码package com.star.movie.exchange.fanout;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbi...原创 2020-02-24 20:05:59 · 207 阅读 · 0 评论 -
1.8 RabbitMQ-Topic Exchange demo
demo的前置条件和1.5-RabbitMQ-速入门demo 一样。Topic Exchange的基本概念:1.1消费者代码import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.QueueingConsumer;import com.rab...原创 2020-02-24 19:55:44 · 192 阅读 · 0 评论 -
1.7 RabbitMQ-Direct Exchange demo
demo的前置条件和1.5-RabbitMQ-速入门demo 一样。1.0 对于创建信道之前的操作做了一些封装代码如下package com.star.movie.common;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;import java.io.IOExce...原创 2020-02-19 16:34:59 · 195 阅读 · 0 评论 -
1.6 RabbitMQ-Exchange内容详解
一、Exchange交换机的定义交换机,接受消息,根据路由键转发消息到绑定的队列Exchange的常用属性:Name:交换机名称Type:交换机类型 direct、topic、fanout、headersDurability:是否需要持久化,true为持久化Auto Delete:当最后一个绑定带Exchange上的队列删除后,自动删除该ExchangeInternal:当前Exc...原创 2020-02-19 16:09:46 · 165 阅读 · 0 评论 -
1.5 RabbitMQ-速入门demo
本文基于慕课网-阿神老师的课程-RocketMQ核心技术精讲与高并发抗压实战,仅作为个人的学习记录使用idea快速创建一个spring boot项目,在pom文件中添加amqp-client jar包依赖<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-clien...原创 2019-04-23 16:10:20 · 243 阅读 · 0 评论 -
1.4 RabbitMQ-常用的linux命令
本文基于慕课网-阿神老师的课程-RocketMQ核心技术精讲与高并发抗压实战,仅作为个人的学习记录1.RabbitMQ基本操作1.关闭应用 rabbitmqctl stop_app2.启动应用rabbitmqctl start_app3.查看节点状态 rabbitmqctl status4.添加用户rabbitmqctl add_user username passwor...原创 2019-04-23 13:57:30 · 687 阅读 · 0 评论 -
1.3 RabbitMQ -环境搭建(二)
本文基于慕课网-阿神老师的课程-RocketMQ核心技术精讲与高并发抗压实战,仅作为个人的学习记录Linux下搭建RabbitMQ环境由于是初学所以直接通过apt-get来进行直接安装1.erlang环境安装由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlang安装erlan: apt-get install erlang-nox ...原创 2019-04-22 23:59:46 · 146 阅读 · 0 评论 -
1.2 RabbitMQ -环境搭建(一)
本文基于慕课网-阿神老师的课程-RocketMQ核心技术精讲与高并发抗压实战,仅作为个人的学习记录1.本地环境的搭建RabbitMQ是基于Erlang语言开发的,所以需要先安装Erlang语言开发包。关于Erlang安装包和rabbitmq-server安装包版本的选择问题安装otp_win64_18.1.exe直接按照引导下一步即可。1.安装完成后创建ERLANG_HOME环境变量...原创 2019-04-22 23:38:10 · 174 阅读 · 0 评论 -
1.1 RabbitMQ -基本概念
本文基于慕课网-阿神老师的课程-RocketMQ核心技术精讲与高并发抗压实战,仅作为个人的学习记录1.AMQP核心概念Server: 又称Broker,接受客户端的连接,实现AMQP实体服务。Connection:连接,应用程序与Broker的网络连接。Channel:网络信道,几乎所有的操作都在Channel中进行,Channel是进行消息读取的通道。客户端可以建立多个Channel,...原创 2019-04-22 23:09:15 · 180 阅读 · 0 评论