RabbitMQ
文章平均质量分 76
分享RabbitMQ相关知识
1886i
尽人事听天命
展开
-
【小说】Web小说在线阅读系统的实现
获取链接。原创 2023-06-14 21:07:44 · 589 阅读 · 2 评论 -
【RabbitMQ】初识消息中间件MQ
MQ(Message Queue):消息队列,他是在消息传输过程中的消息保存容器,生产者生产消息后存入消息队列后被消费者消费时拿走。MQ多用于分布式系统之间的通信。分布式系统之间的通信主要有两种:远程直接调用接口、通过MQ来实现通信。原创 2023-04-13 20:49:51 · 662 阅读 · 0 评论 -
【RabbitMQ】RabbitMQ控制台的使用
如果在本机上装了RabbitMQ则在浏览器访问127.0.0.1:15672,如果在服务器装了RabbitMQ则通过在浏览器输入urlip:15762来访问登录后进入主页。原创 2023-04-14 00:50:12 · 4351 阅读 · 0 评论 -
【RabbitMQ】RabbitMQ的简介
RabbitMQ是实现了高级消息队列协议AMQP的一款开源消息代理软件,它的服务器采用Erlang语言进行开发,他的集群与故障转移构建在开放的电信平台框架上,主流的开发语言都有对应的代理接口通信的库。原创 2023-04-14 01:30:00 · 273 阅读 · 0 评论 -
【RabbitMQ】Java操作RabbitMQ之入门Demo
由之前文章里我们了解到RabbitMQ的通信如下图,我们要想将生产者生产的消息存入队列,我们就一个先获得Connection(连接)然后通过连接获取到channel,然后选择虚拟机交换机以及队列等最后关闭连接。此时我们需要去在MQ里创建队列,通过channel里的queueDelclare方法来创建该方法有以下参数。此时我们就可以通过channel里的basicPublish方法进行发送消息,该方法有以下参数。我们获取连接是通过连接工厂进行获取的所以此时我们先要去创建连接工厂并给他配置相应的信息。原创 2023-04-14 02:57:14 · 786 阅读 · 0 评论 -
【RabbitMQ】RabbbitMQ的六种工作模式以及代码实现
RabbitMQ的简单模式是一对一即,一个生产者生产消息后不经交换机直接给指定的队列供消费者消费工作队列模式相比简单模式,他的处理任务速度在一定情况下会更快,因为他相比简单模式单一消费者而言它增加了消费者个数他相比之前两种模式引入了交换机,当MQ服务器收到消息后,交换机会把收到的消息分发给每一个绑定了该交换机的队列给不同的消费者进行消费,之前的文章里我们是通过控制台进行队列与交换机的绑定,这里我们会使用Java代码来进行绑定。原创 2023-04-14 18:20:56 · 700 阅读 · 0 评论 -
【RabbitMQ】Spring整合RabbitMQ、Spring实现RabbitMQ五大工作模式(万字长文)
订阅模式与前两种不同,订阅模式需要使用到fanout类型的交换机,并且将队列与之绑定,他的生产者在xml文件里需要去创建两个队列与fanout类型的交换机并绑定,在发送消息时指定交换机名称即可,而消费者则与前者相同,只是需要修改指定监听的队列名。此处由于创建的交换机类型是fanout广播类型不需要去配置路由,如果创建的direct交换机不止需要配置队列名属性,还需要配置路由属性,如果是topic交换机则需要配置通配符。同样在消费者创建的xml文件里我们路创建队列监听器容器来将不同队列的消息映射到不同的类。原创 2023-04-15 18:17:06 · 2408 阅读 · 0 评论 -
【RabbitMQ】SpringBoot整合RabbitMQ、实现RabbitMQ五大工作模式(万字长文)
我们需要创建一个生产者项目与消费者项目【Java】两张图帮你的社区版IDEA创建SpringBoot项目_1373i的博客-CSDN博客如何创建SpringBoot项目在该文章里,项目创建完成后即可进行后续操作。原创 2023-04-15 21:45:29 · 905 阅读 · 0 评论 -
【RabbitMQ】图解RabbitMQ是如何保证消息可靠性的
当生产者生产出一条消息发送给MQ是时,该消息来到MQ服务器会先到达交换机,然后由交换机根据路由分发给对应的队列,然后再由MQ服务器给消费者进行消费。这个步骤可分为三个过程分别是消息从消费者到交换机、消息从交换机到队列、消息从队列到消费者。那么RabbitMQ是如何保证消息的可靠性的呢。在前两个过程,也就是消息从生产者到达服务器的过程,RabbitMQ提供了两种保证消息从生产者到MQ服务器消息可靠性的方法,分别是confirm确认模式与return退回模式。原创 2023-04-16 02:26:37 · 913 阅读 · 0 评论 -
【RabbitMQ】SpringBoot整合RabbitMQ实现消费端限流
限流就是限制系统的输入输出流量以此来达到保护系统的目的,而RabbitMQ消费端限流指的是对RabbitMQ每次给消费者的消息数量做一定的限制,那么为什么我们要对消费端进行限流呢,举个例子比如我们的系统因为维护升级而下线处理,在处理升级的这个过程中生产者是一直投递消息的。这就会导致MQ服务器消息堆积,如果我们不限流消费者系统升级上线后就会面对巨量的消息,此时就有可能导致系统宕机。我们实现消费端限流时需要开启RabbitMQ的手动签收,在之前的文章里有提到。此时我们的队列里有38条消息。原创 2023-04-16 16:18:19 · 539 阅读 · 0 评论 -
【RabbitMQ】SpringBoot整合RabbitMQ实现延迟队列、TTL、DLX死信队列
TTL(Time To Live):存活时间/过期时间,在RabbitMQ里表示消息从生产者到服务器后该消息的存活时间,一旦到达时长该消息就会被自动清除死信队列英文缩写DLX,Dead Letter Exchange(死信交换机)当消息成为死消息后,可以被重新发送到另一个交换机,这个交换机就是死信交换机,在由该交换机转发给相应的死信队列在RabbitMQ里当消息到达队列后不会立马被消费者消费,而是到达指定的时间才会被消费。原创 2023-04-17 02:03:04 · 1769 阅读 · 0 评论 -
【RabbitMQ】RabbitMQ如何确认消息被消费、以及保证消息的幂等
消费者消费成功后会给MQ服务器的队列发送一个确认消息,此时会有一个回调检测服务监听该接收确认消息的队列,然将消费的消息写入数据库。以上是消息成功被消费时的流程,此时如果消费者没有将消息消费,就不会给服务器发送确认消息了,生产者隔一段时间会延迟发送与之前发送的一模一样的数据到另一个给回调检测服务监听的队列,该服务收到延迟发送的消息后就会去数据库的消息表查询是否有该条消息,但是由于消费者没有消费成功给RabbitMQ服务器发送确认消息,所以数据库里并没有该消息,此时就会让生产者重新发送该消息。原创 2023-04-17 20:26:33 · 3000 阅读 · 0 评论