![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
消息队列
文章平均质量分 74
一江溪水
这个作者很懒,什么都没留下…
展开
-
MQTT协议
MQTT是一种基于发布/订阅模式的轻量级通讯协议,通过订阅相应的主题来获取消息,是物联网(Internet of Thing)中的一个标准传输协议。该协议将消息的发布者(publisher)与订阅者(subscriber)进行分离,因此可以在不可靠的网络环境中,为远程连接的设备提供可靠的消息服务原创 2022-12-10 22:31:01 · 1023 阅读 · 0 评论 -
事件总线 EventBus
EventBus 顾名思义,事件总线,是一个轻量级的发布 - 订阅模式的应用模式。相比于 MQ 更加简洁,轻量,它可以在一个小系统模块内部使用EventBus允许组件之间通过发布 - 订阅进行通信,而不需要组件之间显示的注册。它专门设计为了代替使用显示注册的传统的 Java 进程内事件分发。它不是通用的发布-订阅系统,也不是用于进程间通信的。原创 2022-11-12 15:18:07 · 4606 阅读 · 0 评论 -
RabbitMQ的死信队列
什么是死信在 RabbitMQ 中充当主角的就是消息,在不同场景下,消息会有不同地表现。死信就是消息在特定场景下的一种表现形式,这些场景包括:消息被拒绝访问,即 RabbitMQ返回 nack 的信号时消息的 TTL 过期时消息队列达到最大长度消息不能入队时。上述场景经常产生死信,即消息在这些场景中时,被称为死信。什么是死信队列死信队列就是用于储存死信的消息队列,在死信队列中,有且只有死信构成,不会存在其余类型的消息。死信队列在 RabbitMQ 中并不会单独存在,往往死信队列都会绑原创 2021-11-13 14:51:16 · 6816 阅读 · 1 评论 -
RabbitMQ 如何保证消息不会被重复消费
所有的消息队列都要保证同一条消息不会被重复消费举个例子:假设有个系统,消费一条往数据库里插入一条,要是你一个消息重复两次,你不就插入了两条,这数据就错了所以消费到第二次的时候,自己判断一下已经消费过了,直接扔了,就保留了一条数据一条数据重复出现两次,数据库里就只有一条数据,这就保证了系统的幂等性幂等性。一个请求重复多次,需要确保对应的数据是不会改变的,不能出错。为什么会重复消费(1)生产者重复发送消息:生产者在往消息队列发送消息时,发生了网络抖动,生产者没有收到确认信号,但是实际上消息队原创 2021-10-30 21:17:39 · 4863 阅读 · 0 评论 -
RabbitMQ如何保证顺序消费
为什么要顺序消费保证消息的顺序消费是生产业务场景下经常面临的挑战,例如电商的下单逻辑,在用户下单之后,会发送创建订单和扣减库存的消息,我们需要保证扣减库存在创建订单之后执行。处理业务逻辑后,向MQ发送一条消息,再由消费者从 MQ 中获取 消息落盘到MySQL 中。在这个过程中,可能会有增删改的操作,比如执行顺序是增加、修改、删除。消费者可能换了顺序给执行成删除、修改、增加,所以我们要保证消息的顺序消费为什么会不按顺序消费对于 RabbitMQ 来说,导致上面顺序错乱的原因通常是消费者是集群部原创 2021-10-30 20:57:28 · 11266 阅读 · 10 评论 -
如何保证消息的可靠性传输
在生产环境中,因为机器以及网络设备的不可靠,保证消息的可靠是待解决的问题。在特定场景下消息可能存在丢失风险消息发送流程我们可以将 RabbitMQ 消息处理的过程分为三个步骤:生产阶段:生产者生产消息并且发送到消息队列;储存阶段:消息队列存储和处理消息;消费阶段:消息队列将消息转发到消费者。上述每个步骤都有可能出现消息丢失的风险;生产者生产消息并且发送到消息队列丢失场景生产者将数据发送到 RabbitMQ 的时候,可能数据就在半路给搞丢了,比如:网络故障。网络环境的不可靠导致消息原创 2021-09-20 17:33:27 · 867 阅读 · 0 评论 -
RabbitMQ中消息确认和返回机制
RabbitMQ中消息确认和返回机制为了保证 RabbitMQ 中消息的可靠性投递,以及消息在发生特定异常时的补偿策略RabbitMQ诞生了消息确认和返回机制这两种机制是 RabbitMQ 自带的补偿机制,可以直接使用消息确认消息确认机制消息确认机制,是保障消息与 RabbitMQ消息之间可靠传输消息一种保障机制其主要内容就是用来监听RabbitMQ消息队列收到消息之后返回给生产端的ack确认消息消息确认机制描述了一种消息是否已经被发送到 RabbitMQ消息队列中以及 RabbitM原创 2021-08-02 15:19:56 · 2530 阅读 · 0 评论 -
RabbitMQ队列模型
模型定义生产者(Producer):发送消息到队列的模块,可以理解为消息的提供者队列(Queue):存储消息的一段空间,作为消息的缓存模块;消费者(Consumer):从队列中接受消息的模块,可以理解为消息的处理者交换机(Exchange):消息不直接发到队列,首先发到 Exchange 模块,再根据路由规则转发到定制化的队列。队列模型简单队列工作队列发布/订阅队列路由队列主题队列简单队列在简单队列模型中,只有一个生产者、一个消息队列、一个消费者。优点是不需要配置复杂的原创 2021-07-28 14:05:16 · 456 阅读 · 0 评论 -
消息队列基础
什么是队列队列这个概念非常好理解,你可以把它想象为在食堂排队打饭,先来的先打,后来的人只能站末尾,不允许插队,先进者先出,这就是典型的队列。队列的特定就是先进先出,先来的先出去什么是消息队列消息消息是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。消息队列消息队列是一种应用间的通信方式,说白了就是存放消息的队列消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到队列中,而不用管谁来取消息使用者只管从队列原创 2021-07-24 21:21:25 · 126 阅读 · 0 评论