![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MQ
文章平均质量分 50
huang_sj502
这个作者很懒,什么都没留下…
展开
-
RabbitMQ死信队列和TTL
TTL是什么?TTL(time to live)消息的存活时间,在学习Redis的时候我们也学过相关概念,在RabbitMQ中指的是我们给消息模型中的某个队列或者某个消息设置的过期时间。在RabbitMQ中支持两种设置TTL的方式1.给队列进行ttl设置可以使用x-message-ttl参数设置当前队列中所有消息的过期时间,即当前队列中所有的消息过期时间都一样;2.单独给某条消息设置ttl(生产环境中居多)可以使用Expiration参数来设置单个消息的过期时间。当时间一到就会被移出队列。如果原创 2022-04-11 19:30:17 · 2483 阅读 · 0 评论 -
RabbitMQ如何保证消息不丢失
首先我们来讨论一下MQ数据丢失的场景1.生产者丢失消息第一种情况就是生产者丢失消息,生产者生产了消息在传递的过程中把消息弄丢了2.MQ队列丢失了消息rabbitmq重启后,之前的数据丢失了。所以必须开启持久化将消息持久化到磁盘,这样就算rabbitmq挂了,恢复之后会自动读取之前存储的数据,一般数据不会丢失。除非极其罕见的情况,rabbitmq还没来得及持久化自己就挂了,这样可能导致一部分数据丢失。3.消费者丢失消息消费者消费时,刚拿到消息,还没有处理,结果消费者就挂了,消费者重启之后,rabb原创 2022-04-11 11:12:03 · 7080 阅读 · 0 评论 -
rabbitMQ第五种模型 --topic动态路由
动态路由就是我们可以通过一定匹配规则来绑定交换机与通道*表示一个单词#表示一个或者多个单词生产者package com.zuoan.topics;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.zuoan.utils.RabbitMQUtils;import java.io.IOException;/** * @Description: TODO * @Aut.原创 2022-04-10 17:01:05 · 1072 阅读 · 0 评论 -
rabbitMq第四种模型--direct
在Fanout模式中,一条消息,会被所有订阅的队列都消费。但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。在Direct模型下:队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由key)消息的发送方在 向 Exchange发送消息时,也必须指定消息的 RoutingKey。Exchange不再把消息交给每一个绑定的队列,而是根据消息的Routing Key进行判断,只有队列的Routingkey与消息的 R原创 2022-04-10 15:51:19 · 518 阅读 · 0 评论 -
RabbitMq第三种模型--fanout
fanout也称为扇出模型,消息以广播的方式传播生产者package com.zuoan.fanout;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.zuoan.utils.RabbitMQUtils;import java.io.IOException;/** * @Description: TODO * @Author: 黄石军 * @CreateTime原创 2022-04-10 14:42:43 · 128 阅读 · 0 评论 -
RabbitMQ第二种模型--workqueue
Work queues,也被称为(Task queues),任务模型。奉行的是平均主义让多个消费者绑定到一个队列,共同消费队列中的消息。队列中的消息一旦消费,就会消失,因此任务是不会被重复执行的。两个消费者平分队列中的消息生产者package com.zuoan.wrokqueue;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.zuoan.utils.RabbitM.原创 2022-04-09 18:27:21 · 584 阅读 · 0 评论 -
RabbitMQ第一种消息模型--直连模型
RabbitMQ简单模式–直连,相当于点对点连接一样在上图的模型中,有以下概念:P:生产者,也就是要发送消息的程序C:消费者:消息的接受者,会一直等待消息到来。queue:消息队列,图中红色部分。类似一个邮箱,可以缓存消息;生产者向其中投递消息,消费者从其中取出消息。应用场景我们可以应用于用户的登录,登录以后向消息队列中发送一条登录消息,后台读取到消息可以对用户登录积分加一代码如下:连接消息队列的工具类package com.zuoan.utils;import com.rabbit原创 2022-04-09 17:50:06 · 721 阅读 · 0 评论 -
MQ消息中间件是什么?有什么用?怎么用?笔记
什么是消息中间件?在了解什么是消息中间件之前我们要先理解什么是同步,什么是异步同步与异步**同步(Synchronous)😗*调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。**异步(Asynchronous) 😗*调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而,异步方法通常会在另外一个线程中,“真实”地执行着。整个过程,不会阻碍调用者的工作。我们拿传统系统架构来几个例子用户发起请求给系统A,系统A接到请求直接调用系统B,系统B返回结果后,系原创 2022-04-09 14:22:43 · 1026 阅读 · 0 评论