首页 > 编程 > Python > 正文

利用Python操作消息队列RabbitMQ的方法教程

2020-02-16 01:54:22
字体:
来源:转载
供稿:网友

前言

RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。
MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

应用场景:

RabbitMQ无疑是目前最流行的消息队列之一,对各种语言环境的支持也很丰富,作为一个.NET developer有必要学习和了解这一工具。消息队列的使用场景大概有3种:

     1、系统集成,分布式系统的设计。各种子系统通过消息来对接,这种解决方案也逐步发展成一种架构风格,即“通过消息传递的架构”。

     2、当系统中的同步处理方式严重影响了吞吐量,比如日志记录。假如需要记录系统中所有的用户行为日志,如果通过同步的方式记录日志势必会影响系统的响应速度,当我们将日志消息发送到消息队列,记录日志的子系统就会通过异步的方式去消费日志消息。

     3、系统的高可用性,比如电商的秒杀场景。当某一时刻应用服务器或数据库服务器收到大量请求,将会出现系统宕机。如果能够将请求转发到消息队列,再由服务器去消费这些消息将会使得请求变得平稳,提高系统的可用性。

一、安装环境

首先是在 Linux 上安装 rabbitmq

# 环境为CentOS 7yum install rabbitmq-server # 安装RabbitMQsystemctl start rabbitmq-server # 启动systemctl enable rabbitmq-server # 开机自启systemctl stop firewall-cmd  # 临时关闭防火墙

然后用 pip 安装 Python3 的开发包

pip3 install pika

安装好软件之后可以访问http://115.xx.xx.xx:15672/来访问自带的 web 页面来查看和管理 RabbitMQ。默认管理员的用户密码都是guest

二、简单的向队列中加入消息

#!/usr/bin/env python3# coding=utf-8# @Time : 2017/6/13 19:25# @Author : Shawn# @Blog : https://blog.just666.cn# @Email : shawnbluce@gmail.com# @purpose : RabbitMQ_Producerimport pika# 创建连接对象connection = pika.BlockingConnection(pika.ConnectionParameters(host='115.xx.xx.xx'))# 创建频道对象channel = connection.channel()# 指定一个队列,如果该队列不存在则创建channel.queue_declare(queue='test_queue')# 提交消息for i in range(10): channel.basic_publish(exchange='', routing_key='test_queue', body='hello,world' + str(i)) print("sent...")# 关闭连接connection.close()            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表