rabbitmq专题
文章平均质量分 80
smart哥
一名有10余年经验的互联网老兵,历经从传统软件公司到大型互联网公司的洗礼,早年在中兴通讯等大型通信公司担任项目leader,后随着互联网的崛起,先后在前美团支付等大型互联网公司担任架构师。对互联网架构底层技术有相当的研究和独特的见解,在多个领域有着丰富的实战经验。
展开
-
RabbitMQ学习笔记:springboot RabbitMQ客户端连接故障恢复
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!最近做RabbitMQ故障演练发现RabbitMQ服务器停止后,基于springboot的消费端不可以自动的恢复,队列的消费者消失,消息一直积压到队列中,这种情况肯定是不可接收的;通过研究源代码找到了解决方案。原创 2024-07-12 07:01:52 · 681 阅读 · 0 评论 -
RabbitMQ学习笔记:集群和网络分区(Network Partitions)
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!集群成员之间的网络连接故障会影响客户机操作的数据一致性和可用性(如CAP定理)。由于不同的应用程序对一致性有不同的要求,并且对不可用性的容忍程度不同,所以可以使用不同的的分区处理策略。原创 2024-07-12 07:00:00 · 748 阅读 · 0 评论 -
RabbitMQ学习笔记:mandatory、publisher-confirms、publisher-return属性区别
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!rabbitmq客户端发送消息首先发送的交换器exchange,然后通过路由键routingKey和bindingKey比较判定需要将消息发送到那个队列queue上;在这个过程有两个地方消息可能丢失,第一消息发送到交换器exchange的过程,第二消息从交换器exchange发送到队列queue的过程;原创 2024-07-12 06:58:21 · 469 阅读 · 0 评论 -
RabbitMQ学习笔记:内置Prometheus支持rabbit_prometheus插件
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!从3.8.0开始,RabbitMQ提供内置的Prometheus和Grafana支持。插件中提供了对Prometheus指标收集的支持。该插件以Prometheus文本格式在专用的TCP端口(默认端口15692)上公开所有RabbitMQ指标。插件是RabbitMQ指标的核心导出器,由RabbitMQ核心团队开发。原创 2024-07-12 06:56:51 · 1076 阅读 · 0 评论 -
RabbitMQ学习笔记:惰性队列(Lazy Queues)
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-11 20:46:07 · 717 阅读 · 0 评论 -
RabbitMQ学习笔记:Monitoring(监控)
在本文中,我们将监控定义为一个通过健康检查和随时间变化捕获系统指标行为的过程。这有助于检测异常情况:当系统不可用时,会经历异常负载、某些资源耗尽或其它不在其正常(预期)参数范围内的行为。监控包括收集和长期存储指标,这不仅对异常监控很重要,而且对根本原因分析、趋势检测和容量规划也很重要。监控系统通常与警报系统集成。当监控系统检测到异常时,通常会向警报系统传递某种类型的警报,警报系统会通知相关方,如技术操作团队。原创 2024-07-11 20:44:44 · 794 阅读 · 0 评论 -
RabbitMQ学习笔记:Event Exchange Plugin(事件交换器插件)rabbitmq-event-exchange
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!客户端connection、channels、queues、consumers和系统其它部分自动生成的事件。原创 2024-07-11 20:43:10 · 567 阅读 · 0 评论 -
RabbitMQ学习笔记:RabbitMQ延迟队列(DLX、TTL及rabbitmq_delayed_message_exchange插件)
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!延迟队列存储的对象是对应的延迟消息,所谓的延迟消息是指当消息被发送以后,并不想让消费者立刻拿到消息,而是等待特定时间后,消费者才能拿到这个消息进行消费。在AMQP协议中,或RabbitMQ本身没有直接支持延迟队列的功能,但是可以通过TTL和DLX模拟出延迟队列的功能;原创 2024-07-11 12:18:10 · 729 阅读 · 0 评论 -
RabbitMQ学习笔记:Springboot amqp之 spring_listener_return_correlation、 spring_returned_message_correlati
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-11 12:15:23 · 944 阅读 · 0 评论 -
RabbitMQ学习笔记:springboot2 amqp集成生产者消费者
*** @Description: RabbitMQ生产者交换器、绑定、队列声明*//*** 声明队列*/@Bean/*** 设置消息发送到队列之后多久被丢弃,单位:毫秒*//*** 定义优先级队列,消息最大优先级为15,优先级范围为0-15,数字越大优先级越高*//*** 设置持久化队列*//*** 声明Topic类型交换器*/@Bean/*** Topic交换器和队列通过bindingKey绑定* @return*/原创 2024-07-11 12:13:43 · 479 阅读 · 0 评论 -
RabbitMQ学习笔记:消息追踪rabbitmq_tracing插件
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!rabbitmq_tracing插件相当于Firehose的GUI版本,它同样能跟踪RabbitMQ中消息的流入流出情况。rabbitmq_tracing插件同样会对流入流出的消息进行封装,然后将封装后的日志存入相应的trace文件中。原创 2024-07-11 12:11:38 · 730 阅读 · 0 评论 -
RabbitMQ学习笔记:消息追踪Firehose功能详解
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!在使用任何消息中间件的过程中,难免会出现消息异常丢失的情况。对于RabbitMQ而言,可能是生产者与Broker断开了连接并且没有任何重试机制;也可能是消费者在处理消息时发生了异常,不过却提前进行了ack;甚至是交换器没有与任何队列绑定,生产者感知不到或者没有采取相应的措施;原创 2024-07-10 09:02:44 · 1176 阅读 · 0 评论 -
RabbitMQ学习笔记:RabbitMQ能打开最大连接数
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-10 08:02:59 · 1218 阅读 · 0 评论 -
RabbitMQ学习笔记:调整吞吐量TCP Buffer Size
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!调整吞吐量是一个共同的目标,可以通过增加TCP缓冲区大小,确保Nagle算法被禁用,启用可选的TCP功能和扩展来实现改进。对于后两种情况,可以参考操作系统级优化部分。请注意,吞吐量的调整将涉及权衡。例如,增加TCP缓冲区大小将增加每个连接使用的RAM大小,这可能使服务器RAM使用总量显著的增加。原创 2024-07-10 08:01:19 · 978 阅读 · 0 评论 -
RabbitMQ学习笔记:节点间通信缓冲区大小限制(Buffer Size Limit)
节点间连接对待发送的数据使用缓冲区,当缓冲区达到最大允许容量时,对节点间通信量应用临时限制。该限制是通过环境变量RABBITMQ_DISTRIBUTION_BUFFER_SIZE来设置,单位是kilobytes,默认值是128MB(128000KB)。在具有大量节点间通信量的集群中,增加此值可能会对吞吐量产生积极影响。联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。哥,前中兴通讯、美团架构师,现某互联网公司。学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-10 07:59:47 · 417 阅读 · 0 评论 -
RabbitMQ学习笔记:centos7中操作rabbitmqctl指令the VM is running with native name encoding of latin1 which may
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-08 07:23:06 · 149 阅读 · 0 评论 -
RabbitMQ学习笔记:4369、5672、15672、25672默认端口号修改
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-08 07:21:53 · 1390 阅读 · 0 评论 -
RabbitMQ学习笔记:节点名称详解、rabbitmq-server、及rabbitmq-env.conf
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-08 07:20:34 · 1064 阅读 · 0 评论 -
RabbitMQ学习笔记:rabbitmq-server -detached Warning: PID file not written; -detached was passed
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-08 07:19:09 · 343 阅读 · 0 评论 -
RabbitMQ学习笔记:消息服务器进程详解
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-07 15:59:53 · 326 阅读 · 0 评论 -
RabbitMQ学习笔记:端口号解析(Port Access)
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-07 15:58:17 · 508 阅读 · 0 评论 -
RabbitMQ学习笔记:CentOS7中安装RabbitMQ集群
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!安装rabbitmq的前提是 在CentOS7中,如果是在docker中安装,需要先创建镜像创建CentOS7服务器mq2创建CentOS7服务器mq3创建CentOS7服务器mq4。原创 2024-07-07 15:56:48 · 775 阅读 · 0 评论 -
RabbitMQ学习笔记:docker-compose文件创建rabbitmq集群
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-07 15:53:49 · 24 阅读 · 0 评论 -
RabbitMQ学习笔记:高可用性(镜像)队列
默认情况 下,RabbitMQ集群中队列的内容位于单个节点(声明该队列的节点)上。这与交换器和绑定相反,交换器和绑定始终可以被视为在所有节点上。可以选择使队列跨多个节点进行镜像。每个镜像队列由一个主服务器和一个或多个镜像组成。主节点托管在一个通常称为主节点的节点上。每个队列都有其自己的主节点。给定队列的所有操作都首先应用于队列的主节点,然后传播到镜像。这涉及排队发布,向消费者传递消息,跟踪来自消费者的确认等。队列镜像意味着节点的集群。原创 2024-07-07 08:21:33 · 821 阅读 · 0 评论 -
RabbitMQ学习笔记:使用Docker部署RabbitMQ集群
RabbitMQ本身是基于Erlang编写,Erlang语言天生具备分布式、高并发的特性(通过同步Erlang集群各节点的magic cookie来实现)。因此,RabbitMQ天生支持Clustering。这使得RabbitMQ本身不需要像ActiveMQ、Kafka那样通过Zookeeper分别来实现HA方案和保存集群的元数据。集群是保证可靠性的一种方式,同时可以通过水平扩展以达到增加消息吞吐量的能力。原创 2024-07-07 08:19:41 · 1423 阅读 · 1 评论 -
RabbitMQ学习笔记:流控(Per-connection flow control)
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!流控机制是用来避免消息发送速率过快而导致服务器难以支撑的情况。内存(memory)和磁盘(Disk space)达到阀值发出的警告相当于全局的流控,一旦触发会阻塞集群或者单机的所有连接(Connection),这一块我上一篇博文已经讲解过了,而本节的流控是针对单个连接(Connection)的。原创 2024-07-07 08:18:02 · 276 阅读 · 0 评论 -
RabbitMQ学习笔记:Connections、Channels、Queues之state状态
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-06 15:47:54 · 203 阅读 · 0 评论 -
RabbitMQ学习笔记:流控(Per-connection flow control)
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!流控机制是用来避免消息发送速率过快而导致服务器难以支撑的情况。内存(memory)和磁盘(Disk space)达到阀值发出的警告相当于全局的流控,一旦触发会阻塞集群或者单机的所有连接(Connection),这一块我上一篇博文已经讲解过了,而本节的流控是针对单个连接(Connection)的。原创 2024-07-06 15:46:24 · 528 阅读 · 0 评论 -
RabbitMQ学习笔记:内存(Memory)|磁盘空间(Disk space)阀值
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!相关文档指南: https://rabbitmq.com/memory.html。原创 2024-07-06 15:45:03 · 1024 阅读 · 0 评论 -
RabbitMQ学习笔记:死信交换机DLX
rejected: the message was rejected with requeue parameter set to false (消息被消费者使用basic.reject或basic.nack方法,并且requeue参数设置为false,通过这种方式进行消息确认)has expired (消息过期)was exceeded (消息由于队列长度及容量限制被丢弃的消息)原创 2024-07-06 15:43:02 · 642 阅读 · 0 评论 -
RabbitMQ学习笔记:高级特性TTL(过期时间)
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!TTL,Time To Live的简称,即消息过期时间,可以对消息和队列设置TTL。目前有两种方式可以设置消息的TTL。第一种是通过队列的属性设置,队列中的所有消息都有相同的过期时间。第二种方法是对消息本身进行单独设置,每条消息的TTL可以不同。如果两种方法同时设置,则TTL以两者之间较小的那个数值为准。原创 2024-07-05 08:30:34 · 239 阅读 · 0 评论 -
RabbitMQ学习笔记:队列容量设置(x-max-length、x-max-length-bytes、x-overflow)
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!rabbitmq可以设置队列的最大长度、队列最大容量及溢出后的处理逻辑。原创 2024-07-05 08:28:37 · 254 阅读 · 0 评论 -
RabbitMQ学习笔记:虚拟主机(Virtual Hosts)
RabbitMQ是一个多租户系统,connetions、exchange、queues、bindings、user permissions、policies和其它一些属于虚拟主机的东西;原创 2024-07-05 08:26:46 · 987 阅读 · 0 评论 -
RabbitMQ学习笔记:获取消息(Ack Mode)
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!在服务器端的客户端页面从队列中获取消息是一个危险的动作,生产环境一定要了解业务之后再做操作。原创 2024-07-05 08:23:45 · 354 阅读 · 0 评论 -
RabbitMQ学习笔记:消费者预取消息(basic.qos)
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!消费者预取是信道预取机制的扩展AMQP 0-9-1协议指定basic.qos方法,以便在使用时限制channel(connection)上未确认的消息数(也称之为“prefetch count”)。原创 2024-07-04 08:42:40 · 288 阅读 · 0 评论 -
RabbitMQ学习笔记:消费者优先级(priority)
消费者优先级允许你确保高优先级消费者活动(非阻塞)的时候接收消息,低优先消费者只有在高优先级消费者阻塞的时候接收消息。通常,连接到队列上的活动消费者以循环的方式从队列接收消息。当消费者使用优先级,如果多个活动消费者存在,且具有相同的优先级,则消息轮流传递。上述段落指的是消费者处于活动状态或受阻状态。在任何时候,给定的消费者不是活动状态就是阻塞状态,一个活动的消费者是可以不需要任何等待就接收消息;原创 2024-07-04 08:41:10 · 534 阅读 · 0 评论 -
RabbitMQ学习笔记:消息优先级(priority)
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-04 08:39:50 · 430 阅读 · 0 评论 -
RabbitMQ学习笔记:addReturnListener监听回退消息
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-04 08:38:09 · 264 阅读 · 0 评论 -
RabbitMQ学习笔记:RabbitMQ发送消息附带BasicProperties属性详解
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-03 09:02:52 · 779 阅读 · 0 评论 -
RabbitMQ学习笔记:RabbitMQ之basicConsume、basicCancel、basicPublish等方法详解
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-07-03 09:01:16 · 966 阅读 · 0 评论