MQ 消息队列
文章平均质量分 88
消息队列
鹤冲天Pro
阿里云专家博主、新星计划导师、Java领域新星创作者、全栈领域优质创作者、CSDN内容合伙人、华为云享专家、腾讯云优秀博主、51CTO博客专家,交流合作私信+。有多年 Java+GO+JS全栈开发工作经验。熟练掌握:Java、K8s、Netty、TCP/IP、SpringCloud、Docker、MySQL、Redis、JS/TS、Vue、React、Go语言等技术。 座右铭:终身学习,持续进步;道阻且长,行则将至。
展开
-
RabbitMQ原理(五):消费者的可靠性
例如我们当前案例中,处理消息的业务逻辑是把订单状态从未支付修改为已支付。我们在用户支付成功后会发送MQ消息到交易服务,修改订单状态为已支付,就可能出现消息重复投递的情况。不过需要注意的是,交易服务并不知道用户会在什么时候支付,如果查询的时机不正确(比如查询的时候用户正在支付中),可能查询到的支付状态也不正确。因此,RabbitMQ必须知道消费者的处理状态,一旦消息处理失败才能重新投递消息。业务判断就是基于业务本身的逻辑或状态来判断是否是重复的请求或消息,不同的业务场景判断的思路也不一样。原创 2023-10-24 10:53:36 · 2399 阅读 · 25 评论 -
RabbitMQ原理(四):MQ的可靠性
消息到达MQ以后,如果MQ不能及时保存,也会导致消息丢失,所以MQ的可靠性也非常重要。为了提升性能,默认情况下MQ的数据都是在内存存储的临时数据,重启后就会消失。为了保证数据的可靠性,必须配置数据持久化。原创 2023-10-24 10:48:24 · 717 阅读 · 10 评论 -
RabbitMQ原理(三):发送者的可靠性
每个只能配置一个,因此我们可以在配置类中统一设置。我们在publisher模块定义一个配置类:log . error("触发return callback,");} });} }log . error("触发return callback,");} });} }Slf4j;import orglog . error("触发return callback,");} });} }原创 2023-10-22 09:30:00 · 694 阅读 · 23 评论 -
RabbitMQ原理(二):SpringAMQP编程
由于`RabbitMQ`采用了AMQP协议,因此它具备跨语言的特性。任何语言只要遵循AMQP协议收发消息,都可以与`RabbitMQ`交互。并且`RabbitMQ`官方也提供了各种不同语言的客户端。但是,RabbitMQ官方提供的Java客户端编码相对复杂,一般生产环境下我们更多会结合Spring来使用。而Spring的官方刚好基于RabbitMQ提供了这样一套消息收发的模板工具:SpringAMQP。并且还基于SpringBoot对其实现了自动装配,使用起来非常方便。原创 2023-09-27 09:51:10 · 1553 阅读 · 8 评论 -
RabbitMQ原理(一):基础知识
微服务一旦拆分,必然涉及到服务之间的相互调用,目前我们服务之间调用采用的都是基于OpenFeign的调用。这种调用中,调用者发起请求后需要服务提供者执行业务返回结果后,才能继续执行后面的业务。也就是说调用者在调用过程中处于阻塞状态,因此我们成这种调用方式为,也可以叫。但在很多场景下,我们可能需要采用的方式,为什么呢?我们先来看看什么是同步通讯和异步通讯。如图:两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发微信可以同时与多个人收发微信,但是往往响应会有延迟。原创 2023-09-26 16:53:48 · 1606 阅读 · 18 评论 -
Zookeeper、Nacos、Dubbo、Kafka之间的关系
Nacos和Zookeeper都可以作为配置中心,做一些可以实时变化的配置数据存储,然后实时更新线上数据。Dbbo是一个框架,用于服务间的调度,服务程序编写使用dubbo做接口,利用dubbo是实现服务服务之间还有Zookeeper之间的通讯。原创 2023-05-23 17:34:33 · 2668 阅读 · 18 评论 -
RabbitMQ详解(二):Docker安装RabbitMQ
在Docker上安装部署RabbitMQ方便快捷,不需要额外安装Erlang环境,所以写该篇文章先来介绍如何在Docker上部署RabbitMQ。原创 2023-02-13 14:05:56 · 4601 阅读 · 21 评论 -
RabbitMQ详解(一):RabbitMQ相关概念
RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。作为一名合格的开发者,有必要对RabbitMQ有所了解,本系列是RabbitMQ快速入门文章,主要内容包括RabbitMQ是什么、RabbitMQ核心概念、五种消息模型、用Docker安装RabbitMQ等。原创 2023-02-12 14:46:44 · 8992 阅读 · 19 评论 -
docker安装 kafka集群
kafka是分布式的、基于发布/订阅模式的消息队列。本文使用docker安装 kafka集群原创 2023-01-05 10:52:21 · 6412 阅读 · 8 评论 -
MQTT 协议简介
MQTT是一种基于发布/订阅模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。原创 2023-01-04 10:02:19 · 13766 阅读 · 4 评论 -
RabbitMQ学习笔记
消息队列是用来发送消息的消息中间件,本质上是队列,具有服务削峰、程序解耦、异步消息的功能。原创 2023-01-03 23:29:00 · 6163 阅读 · 5 评论