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的主要内容,如果未能解决你的问题,请参考以下文章
RabbitMQ学习笔记五:RabbitMQ之优先级消息队列
[原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map(代码片