×

rabbitmq

05:消息队列篇(8)(消息队列详解)

daimoway daimoway 发表于2024-05-11 浏览11930 评论0
目录 一、MQ有什么用?有哪些具体的使用场景? 二、如何进行产品选型? 三、如何保证消息不丢失? 四、如何保证消息消费的幂等性? 五、如何保证消息的顺序? 六、如何保证消息的高效读写? 七、使用MQ如何保证分布式事务的最终一致性? 八、让你设计一个MQ,你会如何设计? 一、MQ有什么用?有哪些具体的使用场景? MQ: MessageQueue,消息队列。 队列是一种FIFO先进先出的数据结构。消息由生产者发送到MQ进行排队,然后由消费者对消息进行处理。QQ、

rabbitmq

RabbitMQ之延迟功能两种实现方式

咿呀? 咿呀? 发表于2024-05-11 浏览5718 评论0
方式一 延迟队列(死信队列) 模拟订单创建完,如果30分钟后还没有支付,则取消订单。 要实现的办法很多, 使用RabbitMQ延迟队列是其中一个办法! 使用死信队列大致思路: 订单MQ配置类 /** * 订单业务配置 * 死信队列使用的 orderTTLExchange,orderTTLQueue,orderTTLKey * 正常队列使用的 orderExchange,orderQueue,orderKey * 在orderTTLQueue中设置,当消息设置的时间到了,消失了,那么

rabbitmq

【RabbitMQ】回顾下RabbitMQ知识点,还记得哪些?

枫叶?飘飘 枫叶?飘飘 发表于2024-05-11 浏览4724 评论0
什么是RabbitMQ? RabbitMQ是一个消息代理 - 一个消息系统的媒介。 RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。 它可以为你的应用提供一个通用的消息发送和接收平台,并且保证消息在传输过程中的安全。 为什么要选择RabbitMQ,不选其他MQ? kafka是以吞吐量高而闻名,不过其数据稳定性一般,而且无法保证消息有序性。如果公司的项目中使用了MQ作为日志收集,建议选择使用RabbitMQ。 阿里巴巴的Rock

spring boot

【代码阅读】云E办项目后端技术栈总结及源码分析(云E办公后端项目文档)

single12 single12 发表于2024-05-10 浏览7753 评论0
项目来源:Bilibili:带你从0搭建一个springboot+vue前后端分离的java项目 源码地址:https://github.com/Jimecc/yeb 本项目的后端部分我已经完整的部署在了我的个人服务器上,因此: Swagger2 接口文档:http://110.40.191.51:8081/doc.html 只想学前端的朋友可以将自己的前端跨域地址设置为http://110.40.191.51:8081,具体方法点击此处 开发环境:MacBook

rabbitmq

Dapr for dotnet | 发布与订阅- Publish & Subscribe

正邦鞋业 正邦鞋业 发表于2024-05-10 浏览4633 评论0
什么是发布与订阅(Publish & Subscribe)? 在分布式环境中,各服务之间通常存在信息传递的需求,除了前面介绍的点对点的直接通信模式,有些应用场景还会存在间接解耦的异步通信模式,而 Pub/Sub 模式(通常称为“发布/订阅”)就是其中一种广泛使用的消息传递模式。 架构师通常在分布式应用程序中采用它。 但是,实现此模式的管道可能会很复杂。 在不同的消息传递产品中,通常会有功能差异。 下面是一个典型的消息发布与订阅模式,在分布式环境中各服务彼此独立且需要相互通信时,此模

rabbitmq

RabbitMQ Tutorials

meiti meiti 发表于2024-05-10 浏览6371 评论0
消息队列 1.MQ相关概念 1.1 什么是MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息 1.2 为什么使用MQ 流量削峰 处理能力有限,如果只能处理1W请求,1W的之内都能即时响应,现在由于活动2W用户请求,不能放弃掉1W用户,所以消息可以到消息队列,只不过处理用户下单的时间比之前长 应用解耦

rabbitmq

RocketMq拉取模式消费者模块

呃哦 呃哦 发表于2024-05-10 浏览5657 评论0
一、背景 推送模式如果消费者处理慢,大量消息会导致消费者宕机,因此采用消费者实时拉取。要么自己写while(true),要么用如下 二、代码如下(此为多线程操作) @Component public class MyConsumer { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired private RocketMQConfig rocketMQConf

rabbitmq

RabbitMQ Exchange 类型

LJY LJY 发表于2024-05-10 浏览6660 评论0
RabbitMQ Exchange 有四种类型:fanout、direct、topic、headers fanout 类型:类似于广播,群发。接收到的消息,会分发给所有绑定的队列。如下图所示,每个队列都会得到全部得消息。 direct 类型: 消息生产者投递消息到 Exchange 时,给出两个信息:一个是消息本体,一个是消息的路由键(RoutingKey)。类似与我们电子邮件时,邮件的内容(消息本体)和接收人的邮件地址(路由键)。 队列和和 Exchange 绑定时,需要指定一个绑定键

rabbitmq

Linux:轻松安装RabbitMQ(Centos版)

Justin Justin 发表于2024-05-10 浏览7494 评论0
前期准备 1、centos7的虚拟机 2、查看安装的RabbitMQ与erlang的版本对应关系。 本博客使用的是【RabbitMQ是3.8.9,erlang是23.x(官方组合)】 安装流程 1、安装rabbitmq需要的erlang环境 #下载erlang到指定位置opt目录 wget -P /opt https://github.com/rabbitmq/erlang-rpm/releases/download/v23.0/erlang-23.0-1.el7.x86_

rabbitmq

RabbitMQ中的死信及死信队列详解

尉蓝屋檐 尉蓝屋檐 发表于2024-05-10 浏览7011 评论0
1、什么是死信 死信产生主要来自于两个过程角色 来自于消费者端 来自于queue 产生死信的三种情况: 如果queue中的消息被消费者接收, 但是消费者拒绝消费(消费者执行了reject 或nack 并将 requee 参数设置为 false )的时候,这个消息就会变成死信。 消息本身设置了过期时间(TTL), 并且消息过期时间已经生效, 还未被消费的消息就会变成死信【特点是每个消息的过期时间都不同】 可以设置队列中所有消息的过期时间,如果消息过期时间已经生效,消息还未被消费 队列