![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RabbitMQ
文章平均质量分 50
毕竟尹稳健
凸头小白
展开
-
RabbitMQ高级-消息确认机制的配置
1、正常情况下能正常接收1、创建交换机、队列、绑定交换机和 队列package com.sky.config;import org.springframework.amqp.core.Binding;import org.springframework.amqp.core.BindingBuilder;import org.springframework.amqp.core.DirectExchange;import org.springframework.amqp.core.Queue;i原创 2022-05-14 12:36:04 · 612 阅读 · 0 评论 -
RabbitMQ高级-死信队列
概述DLX,全称为Dead-Letter-Exchange , 可以称之为死信交换机,也有人称之为死信邮箱。当消息在一个队列中变成死信(dead message)之后,它能被重新发送到另一个交换机中,这个交换机就是DLX ,绑定DLX的队列就称之为死信队列。消息变成死信,可能是由于以下的原因:消息被拒绝消息过期队列达到最大长度DLX也是一个正常的交换机,和一般的交换机没有区别,它能在任何的队列上被指定,实际上就是设置某一个队列的属性。当这个队列中存在死信时,Rabbitmq就会自动地将这个消原创 2022-05-14 12:28:40 · 531 阅读 · 0 评论 -
RabbitMQ高级-过期时间TTL
概述过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;过了之后消息将自动被删除。RabbitMQ可以对消息和队列设置TTL。目前有两种方法可以设置。第一种方法是通过队列属性设置,队列中所有消息都有相同的过期时间。第二种方法是对消息进行单独设置,每条消息TTL可以不同。如果上述两种方法同时使用,则消息的过期时间以两者之间TTL较小的那个数值为准。消息在队列的生存时间一旦超过设置的TTL值,就称为dead message被投递到死信队列, 消费者将无法再收到该消息。1原创 2022-05-14 12:25:30 · 327 阅读 · 0 评论 -
RabbitMQ-SpringBoot案例 -topic模式
生产者工程1、RabbitTemplate配置类无,其实并不是没有,而是将配置类的方式换成了注解的。但实际上开发建议用配置类,注解也就图一乐。2、消息发送服务package com.sky.service.impl;import com.sky.service.OrderService;import org.springframework.amqp.rabbit.core.RabbitTemplate;import org.springframework.beans.factory.anno原创 2022-05-14 12:23:49 · 554 阅读 · 0 评论 -
RabbitMQ-SpringBoot案例 -direct模式
1、生产者工程1、创建RabbitTemplate的配置类package com.sky.config;import org.springframework.amqp.core.*;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/** * @author 尹稳健~ * @version 1.0 */@Confi原创 2022-05-14 12:21:17 · 202 阅读 · 0 评论 -
RabbitMQ-SpringBoot案例 -fanout模式
1、创建生产者工程1、在pom.xml中引入依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <原创 2022-05-13 15:50:24 · 423 阅读 · 0 评论 -
Work模式 - 公平分发(Fair Dispatch)
1、Work模式 - 公平分发(Fair Dispatch)当有多个消费者时,我们的消息会被哪个消费者消费呢,我们又该如何均衡消费者消费信息的多少呢?主要有两种模式:1、轮询模式的分发:一个消费者一条,按均分配;2、公平分发:根据消费者的消费能力进行公平分发,处理快的处理的多,处理慢的处理的少;按劳分配;2、Work模式 - 公平分发(Fair Dispatch)生产者package com.sky.rabbitmq.work.fair;import com.rabbitmq.clien原创 2022-05-13 15:47:00 · 178 阅读 · 0 评论 -
Work模式 - 轮询模式(Round-Robin)
1、Work模式轮询模式(Round-Robin)当有多个消费者时,我们的消息会被哪个消费者消费呢,我们又该如何均衡消费者消费信息的多少呢?主要有两种模式:1、轮询模式的分发:一个消费者一条,按均分配;2、公平分发:根据消费者的消费能力进行公平分发,处理快的处理的多,处理慢的处理的少;按劳分配;生产者package com.sky.rabbitmq.work.polling;import com.rabbitmq.client.Channel;import com.rabbitmq.cl原创 2022-05-13 15:43:33 · 1109 阅读 · 0 评论 -
用Java代码操作RabbitMQ(包括创建和绑定)
生产者package com.sky.rabbitmq.all;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;import java.io.IOException;import java.util.concurrent.TimeoutException;/** * @author 尹稳健~ * @原创 2022-05-13 15:41:43 · 1540 阅读 · 0 评论 -
header模式:附属参数
1、web端操作1、创建header交换机2、绑定队列3、测试发送消息,接收消息发送前:发送后:发现queue5和queue6全都接收到了消息。4、小结只要header里面添加了参数的队列都可以接收到消息。...原创 2022-05-13 15:39:51 · 98 阅读 · 0 评论 -
Topic模式:主题模式
图解[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yfyALFX5-1652427225250)(C:\Users\LENOVO\AppData\Roaming\Typora\typora-user-images\1650871145727.png)]1、web端操作1、新建3个队列2、新建一个交换机3、交换机绑定队列这里的路由key是什么意思呢?留一个悬念4、测试发送消息发送消息前:发送消息:再次测试经过多次测试发现了规律吗?.原创 2022-05-13 15:38:12 · 294 阅读 · 0 评论 -
Direct模式:路由key
图解1、web端操作1、创建一个exchange模式要选direct2、绑定队列一个队列可以绑定多次路由key就相当于条件筛选3、发布消息还没发消息前:发消息后:路由key为wechat的都收到了消息举例: 比如说我们刷b站的时候,你关注了一个up主,然后你的同学没有关注,那么这个up主更新视频的时候只要关注了的收到了消息,没关注的就没收到。2、代码操作生产者package com.sky.rabbitmq.direct;import com.rab.原创 2022-05-13 15:33:19 · 447 阅读 · 0 评论 -
fanout模式:发布订阅模式
图解1、web端操作1、先创建三个队列2、再创建一个exchange(交换机)3、将交换机和队列进行绑定第一种方式第二种方式三个队列全部绑定在fanout-exchange,结果:4、交换机发送消息5、队列全部接收到消息6、小结感觉这个发布和订阅模式很像我们生活中关注了某个公众号,关注了的都能接收到他的消息2、代码操作1、生产者package com.sky.rabbitmq.routing;import com.rabbitmq.client.Ch.原创 2022-05-13 15:29:21 · 179 阅读 · 0 评论 -
RabbitMQ的核心组成部分
1、RabbitMQ的核心组成部分核心概念:Server:又称Broker ,接受客户端的连接,实现AMQP实体服务。 安装rabbitmq-serverConnection:连接,应用程序与Broker的网络连接 TCP/IP/ 三次握手和四次挥手Channel:网络信道,几乎所有的操作都在Channel中进行,Channel是进行消息读写的通道,客户端可以建立对各Channel,每个Channel代表一个会话任务。Message :消息:服务与应用程序之间传送的数据,由Properties和原创 2022-05-13 15:23:53 · 1179 阅读 · 0 评论 -
什么是AMQP
AMQP全称:Advanced Message Queuing Protocol(高级消息队列协议)。是应用层协议的一个开发标准,为面向消息的中间件设计。AMQP生产者流转过程AMQP消费者流转过程原创 2022-05-13 15:22:37 · 264 阅读 · 0 评论 -
RabbitMQ入门案例
1:jdk1.82:构建一个maven工程3:导入rabbitmq的maven依赖4:启动rabbitmq-server服务5:定义生产者6:定义消费者7:观察消息的在rabbitmq-server服务中的过程1、导入依赖<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version&g原创 2022-05-03 22:08:01 · 976 阅读 · 0 评论 -
RabbitMQ的角色分类
1、RabbitMQ的角色分类1:none:不能访问management plugin2:management:查看自己相关节点信息列出自己可以通过AMQP登入的虚拟机查看自己的虚拟机节点 virtual hosts的queues,exchanges和bindings信息查看和关闭自己的channels和connections查看有关自己的虚拟机节点virtual hosts的统计信息。包括其他用户在这个节点virtual hosts中的活动信息。3:Policymaker包含m原创 2022-05-03 22:06:00 · 240 阅读 · 0 评论 -
RabbitMQ之Docker安装
1、虚拟化容器技术—Docker的安装(1)yum 包更新到最新> yum update(2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的> yum install -y yum-utils device-mapper-persistent-data lvm2(3)设置yum源为阿里云> yum-config-manager --add-repo http://mirrors.aliyun.co原创 2022-05-03 22:04:25 · 1059 阅读 · 0 评论