摘要:
登录RabbitMQ控制台提示不是私密连接 将启动的时候的赋权操作再执行一遍 rabbitmqctl add_user root rabbitmqctl set_permissions -p / root ".*" ".*" ".*" rabbitmqctl set_user_tags root a 阅读全文
摘要:
RabbitMQ延迟队列插件 下载 官网 https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases 我用的是3.10.7的RabbitMQ, 但是官网没有这么新版本的, 只好下载3.10.2得了 安装 # 进入plu 阅读全文
摘要:
SpringBoot整合RabbitMQ 整合就直接使用单机版的了, 一直开着5个虚拟机, 我电脑不太行 新建SpringBoot工程 你已经是一个长大的IDEA了, 要学会自己新建工程, 然后IDEA自己创建了rabbitmq-consumer和rabbitmq-producer工程 添加依赖 < 阅读全文
摘要:
消息一致性问题 在使用rabbitmq中,消息的一致性是非常重要的一个话题。在数据一致性方面,发送者发送消息出来,在数据一致性的要求下,我们通常认为必须达到以下条件 broker持久化消息 publisher知道消息已经成功持久化 首先,我们可以采用事务来解决此问题。每个消息都必须经历以上两个步骤, 阅读全文
摘要:
集群架构 虚拟机规划 IP hostname 节点说明 端口 控制台地址 192.168.247.150 rabbitmq.master rabbitmq master 5672 http://192.168.247.150:15672 192.168.247.151 rabbitmq.s.o ra 阅读全文
摘要:
死信队列 死信队列: DLX, Dead-Letter-Exchange 利用DLX, 当消息在一个队列中变成死信(dead message)之后, 它能被重新publish到另一个Exchange, 这个Exchange就是DLX DLX也是一个正常的Exchange, 和一般的Exchange没 阅读全文
摘要:
TTL队列/消息 TTL: Time To Live, 生存时间 RabbitMQ支持消息的过期时间, 在消息发送时可以指定 RabbitMQ支持队列的过期时间, 从消息进入队列开始计算, 只要超过了队列的超时时间配置, 那么消息会被自动清除 TTL队列代码实现 消费者 package com.da 阅读全文
摘要:
消费端的消息ACK与重回队列 消费端的手工ACK和NACK ACK分为自动和手动 消费端进行消费的时候, 如果由于业务异常我们可以进行日志的记录, 然后进行补偿 如果由于服务器宕机等严重问题, 那我们就需要手工进行ACK保障消费端消费成功 消费端的重回队列 消费端重回队列是为了对没有处理成功的消息, 阅读全文
摘要:
消费端限流 什么是消费端限流 假设一个场景, 首先, 我们RabbitMQ服务器有上万条消息未处理的消息, 我们随机打开一个消费者客户端, 会出现下面情况 巨量的消息瞬间全部推送过来, 但是我们单个客户端无法同时处理这么多数据 RabbitMQ提供了一种Qos(服务质量保证)功能, 即在非自动确认消 阅读全文
摘要:
Return返回消息 Return消息机制 Return Listener 用于处理一些不可路由的消息 我们的消息生产者,通过指定一个Exchange和RouteKey, 把消息送达到某一个队列中去,然后我们的消费者监听队列,进行消费处理操作 但是在某些情况下, 我们在发送消息的时候, 当前的Exc 阅读全文
摘要:
Confirm确认消息 理解Confirm消息确认机制 消息的确认, 是指投递消息后, 如果Broker收到消息, 则会给我们生产者一个应答 生产者进行接收应答用来确定这条消息是否正常的发送到Broker, 这种方式也是消息的可靠性投递的核心保障 Confirm确认消息流程解析 Confirm确认消 阅读全文
摘要:
幂等性概念详解 幂等性是什么 可以借鉴数据库的乐观锁机制 比如执行一条更新库存的SQL update t_reps set count = count -1 , version = version + 1 where version = 1; MQ最重要的两个特点就是生产端保证可靠性投递和消费端幂等 阅读全文
摘要:
消息如何保证100%的投递成功 什么是生产端的可靠性投递 保障消息的成功发出 保障MQ节点的成功接收 发送端收到MQ节点(Broker)确认应答 完善的消息进行补偿机制 BAT/TMD互联网大厂的解决方案 消息信息落库, 对消息状态进行打标 存入本地消息表 打印日志记录 将消息发送到MQ 接收MQ的 阅读全文
摘要:
Binding 绑定关系 Exchange和Exchange, Queue之间的连接关系 Binding中可以包含RouteKey或者参数 Queue 消息队列, 实际存储消息数据 Durability: 是否持久化, Durable: 是, Transient: 否 Auto Delete: 如果 阅读全文
摘要:
Fanout Exchange 简介 不处理路由键, 只需要简单的将队列绑定到交换机上 发送到交换机的消息都会被转发到与该交换机绑定的所有队列上 Fanout交换机转发消息是最快的 代码实现 消费者1 package com.dance.redis.mq.rabbit.fanout; import 阅读全文
摘要:
Topic Exchange 简介 所有发送到Topic Exchange的消息被转发到所有关心RouteKey中指定Topic的Queue上 Exchange将RouteKey和某Topic进行模糊匹配, 此时队列需要绑定一个Topic 可以使用通配符进行模糊匹配 #: 匹配一个或多个词 *: 匹 阅读全文
摘要:
Direct Exchange 简介 所有发送到direct exchange 的消息被转发到Routekey中指定的Queue 注意: Direct模式可以使用RabbitMQ自带的Exchange(default exchange), 所以不需要将Exchange进行任何Binding操作, 消 阅读全文
摘要:
Exchange 流程图 接收消息, 并根据路由键转发消息所绑定的队列 Exchange属性 属性 含义 name 交换机名称 type 交换机类型[ direct | topic | fanout | headers ] durability 是否需要持久化[ true | false ] aut 阅读全文
摘要:
MQ控制台简单操作 建立Exchange 新建Exchange成功 新建Queue 新建Queue成功 建立Exchange与Queue的关系 建立关系成功 路由键: 就是指发送到Exchange的消息, 通过路由键的匹配规则, 分发到指定的Queue 样例: test.* 说明: 代表该消息的发送 阅读全文
摘要:
RabbitMQ安装与入门 安装与启动 我实在是找不到这么老的版本了, 直接用最新版本的, 按照道理来说, 新版本是兼容老版本的 官网地址 https://www.rabbitmq.com/ Erlang安装 下载 https://github.com/erlang/otp/releases/dow 阅读全文