RabbitMQ

我们生活在一个实时信息持续可用的世界当中。我们编写的应用程序需要以简单的方式可靠且迅速地路由给众多接受者。更为重要的是,我们需要找到改变信息接收者的方式,而无须频繁地重写它们。应用程序经常会沦为孤岛,新的程序如果不将原始信息的生产者重写(或则推倒重来)的话就无法对其进行访问。你也许会自言自语:“好吧,不过消息队列或则RabbitMQ如何帮助我来解决这些问题呢?”

消息队列(message queuing)使用消息将应用程序连接起来。这些消息通过像RabbitMQ这样的消息代理服务器在应用程序之间路由。这就像是在应用程序之间防止一个邮局。实现的情况是,这个解决方法并不针对的是金融行业实时通信问题,它同时也解决了我们开发人员每天要面对的问题。当我们需要扩大应用程序规模的时候,我们搞不清楚什么是“企业消息通信”。我们和你一样只是开发人员,想要解决这个问题就是处理庞大的实时消息,并把它们快速路由到众多的消费者。我们要在不阻塞消息生产者的情况下做到这一点,同时也无须让生产者知道最终消费者是谁。RabbitMQ帮助我们轻松解决这些常见问题,并用一种基于标准的方法来确保应用程序之间的相互通信。

Ubuntu 20.04 安装 RabbitMQ

2022年01月17日

1、更新系统:sudo apt-get update sudo apt-get -y upgrade2、安装安装 RabbitMQ:sudo apt-get install -y rabbitmq-server3、启动 RabbitMQ 服务:sudo systemctl enable rabbitmq-server sudo systemctl start rabbitmq-server查看...

RabbitMQ如何导出配置

2021年07月12日

最近服务器需要重装系统,这台服务器安装有RabbitMQ,相关配置需要转移到其他服务器,相关配置可以通过控制台直接导出,具体操作步骤如下:1、登录控制台,找到Export definitions,如下图所示:2、下载配置文件,将配置文件导入另外一台服务器:选择刚才的文件,直接导入就可以了。这样就完成了RabbitMQ服务器配置的转移。黄兵个人博客原创。转载请注明出处:黄兵个人博客 - Rabbit...

Unexpected connection close detected: StreamLostError

2021年02月02日

最近使用RabbitMQ消息队列,但是消费者有的时候需要很长时间运行,结果会报如下错误:ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。01-23 09:35 pika.adapters.base_connection ERROR connection_lost: StreamLostError: ("Stream connec...

pika.adapters.blocking_connection StreamLostError: ("Stream connection lost: ConnectionResetError(10054

2021年01月23日

最近在使用RabbitMQ的时候,出现了连接丢失的情况:ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。01-23 09:35 pika.adapters.base_connection ERROR connection_lost: StreamLostError: ("Stream connection lost: Conne...

pika basic.qos(prefetch_count)理解

2021年01月23日

消费者在开启acknowledge的情况下,对接收到的消息可以根据业务的需要异步对消息进行确认。然而在实际使用过程中,由于消费者自身处理能力有限,从rabbitmq获取一定数量的消息后,希望rabbitmq不再将队列中的消息推送过来,当对消息处理完后(即对消息进行了ack,并且有能力处理更多的消息)再接收来自队列的消息。在这种场景下,我们可以通过设置basic.qos信令中的prefetch_co...

pika heartbeat 理解

2021年01月23日

RabbitMQ heartbeat通常用来检测通信的对端是否存活(未正常关闭socket连接而异常crash)。其基本原理是检测对应的socket连接上数据的收发是否正常,如果一段时间内没有收发数据,则向对端发送一个心跳检测包,如果一段时间内没有回应则认为心跳超时,即认为对端可能异常crash了。RabbitMQ也不例外,heatbeat在客户端和服务端之间用于检测对端是否正常,即客户端与服务端...

pika.exceptions.ProbableAccessDeniedError

2020年01月07日

再试用pika的时候报如下错误:pika.exceptions.ProbableAccessDeniedError: ConnectionClosedByBroker: (530) "NOT_ALLOWED - access to vhost 'C_Critical' refused for user 'Se'"出现问题的原因:vhost与用户名认证失败,检查代码,看看用户名和密码是否正确。请检查...

TypeError: basic_consume() got multiple values for argument 'queue'

2020年01月07日

最近在使用RabbitMQ的时候出现了如下错误:TypeError: basic_consume() got multiple values for argument 'queue'具体代码如下:channel.basic_consume(rate_limit_notify, queue='rate_limit', auto_ack=False, consumer_tag='rate_limit'...