Python 学习笔记 - RabbitMQ

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 学习笔记 - RabbitMQ相关的知识,希望对你有一定的参考价值。

RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

RabbitMQ主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。

https://geewu.gitbooks.io/rabbitmq-quick/content/RabbitMQ%E4%BB%8B%E7%BB%8D.html


首先来他需要安装erlang语言包和rabbitmq-server,启动服务,然后打开端口5672


服务器(CentOS7)

yum install erlang
yum install rabbitmq-server
systemctl start rabbitmq-server
systemctl status rabbitmq-server
firewall-cmd --add-port=5672/tcp --permanent
systemctl restart firewalld



Python客户端(windows),安装pika模块

C:\WINDOWS\system32>pip install pika
Collecting pika
  Downloading pika-0.10.0-py2.py3-none-any.whl (92kB)
    100% |################################| 102kB 632kB/s
Installing collected packages: pika
Successfully installed pika-0.10.0


现在看第一个例子:直接指定一个频道连接



生产者

import pika
# ######################### 生产者 #########################
connection = pika.BlockingConnection(pika.ConnectionParameters(
        host=‘sydnagios‘))
channel = connection.channel()
channel.queue_declare(queue=‘hello1‘)
channel.basic_publish(exchange=‘‘,
                      routing_key=‘hello1‘,
                      body=‘Hello World!‘)
print(" [x] Sent ‘Hello World!‘")
connection.close()



消费者

#!/usr/bin/env python
import pika
# ########################## 消费者 ##########################
connection = pika.BlockingConnection(pika.ConnectionParameters(
        host=‘sydnagios‘))
channel = connection.channel()
channel.queue_declare(queue=‘hello1‘)
def callback(ch, method, properties, body):
    print(" [x] Received %r" % body)
channel.basic_consume(callback,
                      queue=‘hello1‘,
                      no_ack=True)
print(‘ [*] Waiting for messages. To exit press CTRL+C‘)
channel.start_consuming()
--------------------------
"C:\Program Files\Python3\python.exe" "C:/Users/yli/Documents/Tencent Files/38144205/FileRecv/FileRecv/day12/s7.py"
 [*] Waiting for messages. To exit press CTRL+C
 [x] Received b‘Hello World!‘


本文出自 “麻婆豆腐” 博客,请务必保留此出处http://beanxyz.blog.51cto.com/5570417/1870203

以上是关于Python 学习笔记 - RabbitMQ的主要内容,如果未能解决你的问题,请参考以下文章

python学习笔记——多进程

Day3: Python学习笔记之计算机基础——网络片

RabbitMQ学习笔记五:RabbitMQ之优先级消息队列

celery学习笔记2

RabbitMQ简单学习笔记

[原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map(代码片