草庐IT

RabbitMQ

全部标签

RabbitMQ中的Routing Key是什么?它的作用是什么?

RabbitMQ中的RoutingKey是什么?它的作用是什么?RabbitMQ中的RoutingKey(路由键)是用于将消息路由到指定队列的关键字。它是在消息发布时与消息一起发送的一个属性。RoutingKey的作用是根据一定的规则将消息发送到匹配的队列中。在RabbitMQ中,Exchange(交换机)负责接收来自生产者的消息,并根据RoutingKey将消息路由到一个或多个队列中。Exchange与队列之间的绑定关系是通过BindingKey(绑定键)来确定的。当生产者发送消息时,需要指定一个RoutingKey,Exchange根据RoutingKey将消息发送到与之匹配的队列中。下面

RabbitMQ+SpringBoot企业版队列实战------【华为云版】

RabbitMQ安装安装Erlang官网提示:https://www.erlang-solutions.com/resources/download.html安装erlang:yum-yinstallesl-erlang_23.0.2-1_centos_7_amd64.rpm检测erlang安装RabbitMQ 文件下载官网下载地址:

RabbitMQ的 五种工作模型

RabbitMQ其实一共有六种工作模式:简单模式(Simple)、工作队列模式(WorkQueue)、发布订阅模式(Publish/Subscribe)、路由模式(Routing)、通配符模式(Topic)、远程调用模式(RPC)。其中发布订阅模式、路由模式、通配符模式这三种模型都属于订阅模式,只不过它们之间进行路由的方式不同罢了。远程调用模式是RPC不属于MQ,所以最终统计下来就是五种工作模式。总结:简单模式和工作队列模式,主要是【队列】和【消费者】的关系,一对一、一对多。订阅模式包含:【交换机】和【队列】的关系,【队列】和【消费者】的关系。队列和消费者是1对多时,那么就是采用平均的方式分给

Docker中为RabbitMQ安装rabbitmq_delayed_message_exchange延迟队列插件

1、前言rabbitmq_delayed_message_exchange是一款向RabbitMQ添加延迟消息传递(或计划消息传递)的插件。插件下载地址:https://www.rabbitmq.com/community-plugins.html1、下载插件首先需要确定我们当前使用的RabbitMQ的版本,我们可以直接登录Web端的管理界面查看版本 也可以在RabbitMQ容器中使用以下命令查看自己使用的RabbitMQ的版本rabbitmqctlversion如上图所示,我当前使用的版本是3.9.11,因此需要下载3.9或者3.9以上的版本。 通过下载链接进入下载页面后,点击下图所示的Re

微服务: 04-springboot中rabbitmq的yml或properties配置,消息回收,序列化方式

目录1.本文简介: 1.1java序列化的缺点--->1.1.1无法跨语言--->1.1.2 易被攻击--->1.1.3序列化后的流太大--->1.1.4序列化性能太差2.配置总览2.1 基础配置 2.2 连接重试配置 2.3 异常重试机制2.4确认模式(本篇是自动) --->2.4.1如图所示2.5发送确认设置 --->2.5.1参数解释:(老版的功能直接是一个布尔值false不开启 true开启)--->2.5.2 写一个callbackConfig,重写方法 2.6重新配置序列化--->方法一: 都以application/json传递接收--->方法二: 都以application/j

RabbitMQ安装配置与简单使用

文章目录前言一、RabbitMQ的安装配置1.下载镜像2.单机部署MQ3.集群部署MQ二、RabbitMQ中的消息模型三、RabbitMQ其他重要知识四、RabbitMQ的基本使用前言本文为学习RabbitMQ后的学习总结记录,大致包含包含以下部分:RabbitMQ的安装配置RabbitMQ中的消息模型RabbitMQ其他重要知识RabbitMQ的基本使用一、RabbitMQ的安装配置1.下载镜像这里选择在Centos7虚拟机中使用Docker来安装。进行在线拉取:dockerpullrabbitmq:3-management2.单机部署MQ为了防止自己以后看不懂,这里稍微解释一下参数:[-e

RabbitMQ如何保证消息幂等性

用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生副作用。举个简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣钱了,流水记录也变成了两条。在以前的单应用系统中,我们只需要把数据操作放入事务中即可,发生错误立即回滚,但是再相应客户端的时候也有可能出现网络中断或者异常等等。1.RabbitMQ自动重试机制消费者在消费消息的时候,如果消费者业务逻辑出现程序异常,这个时候我们如何处理?使用重试机制,RabbitMQ默认开启重试机制。实现原理:@R

arm架构安装RabbitMQ并升级erlang解决Requires: erlang >= 23.2

arm架构安装RabbitMQ#查看Linux内核版本uname-r4.18.0-80.7.2.el7.aarch64#或者使用uname-a#查看erlang版本,输入erlerl#显示如下:Erlang/OTP24版本,我这里是升级后的版本了,本来版本比较低Erlang/OTP24[erts-12.0][source][64-bit][smp:4:4][ds:4:4:10][async-threads:1]EshellV12.0(abortwith^G)1>#yum直接安装RabbitMQ,如果erlang版本比较低,安装的RabbitMQ的版本也会比较低yuminstall-yrabbi

rabbitmq第四课-RabbitMQ高可用集群架构详解以及生产环境最佳实践

一、如何保证RabbitMQ服务高可用1、RabbitMQ如何保证消息安全之前通过单机环境搭建起来的RabbitMQ服务有一个致命的问题,那就是服务不稳定的问题。如果只是单机RabbitMQ的服务崩溃了,那还好,大不了重启下服务就是了。但是如果是服务器的磁盘出问题了,那问题就大了。因为消息都是存储在Queue里的,Queue坏了,意味着消息就丢失了。这在生产环境上肯定是无法接受的。而RabbitMQ的设计重点就是要保护消息的安全性。所以RabbitMQ在设计之处其实就采用了集群模式来保护消息的安全。基础的思想就是给每个Queue提供几个备份。当某一个服务的Queue坏了,至少还可以从其他Que

RabbitMQ的LazyQueue

在默认情况下,RabbitMQ会将接收到的信息保存在内存中以降低消息收发的延迟。但在某些特殊情况下,这会导致消息积压,比如:消费者宕机或出现网络故障消息发送量激增,超过了消费者处理速度消费者处理业务发生阻塞一旦出现消息堆积问题,RabbitMQ的内存占用就会越来越高,直到触发内存预警上限。此时RabbitMQ会将内存消息刷到磁盘上,这个行为成为PageOut.PageOut会耗费一段时间,并且会阻塞队列进程。因此在这个过程中RabbitMQ不会再处理新的消息,生产者的所有请求都会被阻塞。为了解决这个问题,从RabbitMQ的3.6.0版本开始,就增加了LazyQueues的模式,也就是惰性队列