![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RabbitMQ
文章平均质量分 95
gj4990
这个作者很懒,什么都没留下…
展开
-
RabbitMQ heartbeat原理
RabbitMQ的heartbeat是用于客户端与RabbitMQ之间连接的存活状态检测,类似于tcp keepalives功能。本文将介绍RabbitMQ的heartbeat功能何时被创建以及如何检测连接存活状态。1. RabbitMQ连接建立的协议流程对于本文的研究主要聚焦到connection.tune和connection.tune-ok流程进行说明。2.channel_...原创 2019-09-15 09:37:02 · 2155 阅读 · 0 评论 -
RabbitMQ源码编译
RabbitMQ支持多种安装方式,如果需要分析和调试RabbitMQ源码,则需要使用RabbitMQ源码编译安装方式。RabbitMQ是基于erlang语言编写的,其源码托管到github上的。Github上的二进制包可以直接用于安装使用,而源码压缩包则需要经过编译才能使用。如3.7.17版本的RabbitMQ安装包链接为:https://github.com/rabbitmq/rabbitm...原创 2019-09-18 23:13:18 · 2212 阅读 · 0 评论 -
RabbitMQ节点关闭后启动原理
RabbitMQ节点关闭后启动流程图如下:1 mnesia:wait_for_tables解释如果Mnesia推断另一个节点(远程)的拷贝比本地节点的拷贝更新时,初始化时在节点上复制表可能会导致问题,初始化进程无法处理。在这种情况下,对mnesia:wait_for_tables/2的调用将暂停调用进程,直到远程节点从其本地磁盘初始化表后通过网络将表复制到本地节点上。2 rabb...原创 2019-09-26 21:41:44 · 551 阅读 · 0 评论 -
RabbitMQ exchange binding queue原理
RabbitMQ根据exchange的类型规则将消息路由到相应的queue,其中exchange的类型包括direct,topic,fanout以及headers,我们这里主要介绍topic exchange类型的消息路由原理,其他exchange的路由原理相对简单。Topic exchange的示意图如下:*(星号):可以(只能)匹配一个单词。 #(井号):可以匹配多个单词(或者0个)...原创 2019-10-05 14:31:26 · 1332 阅读 · 0 评论 -
RabbitMQ exchange route queue原理
根据前一篇文档介绍的《RabbitMQ exchange binding queue原理》后,这篇文章将介绍exchange如何route消息到正确的queue中,其代码流程如下:在RabbitMQ的客户端发送消息时,将指定exchange和routing_key,在exchange收到消息后,将根据routing_key将消息发送到正确的queue中。1 exchange route...原创 2019-10-06 10:49:46 · 625 阅读 · 0 评论 -
基于py-amqp编写生产者和消费者代码
在介绍erlang的dbg调试RabbitMQ源码之前,首先介绍基于py-amqp编写RabbitMQ的生产者和消费者代码,其中py-amqp的安装包可在以下链接下载:https://pypi.org/project/amqp/1 公共模块生产者和消费者一些公共代码编写在utils.py文件中,代码如下:import loggingimport jsonimport oscl...原创 2019-10-06 22:45:33 · 743 阅读 · 0 评论