RabbitMQ(2)
上一次安装了RabbitMQ并成功创建了vhost和user,可是生产和消费的过程还没有完毕。这次主要调了一下这个过程。
上次基本的问题是没有实现过程代码的编写保存,事实上也就是Python程序,这两天看了一下Python的基本知识,完毕了
主要的Hello World的生产消费:
1.生产send.py:
进入vim。编写生产进程
!/usr/bin/env python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='',routing_key='hello',body='Hello World!')
print " [x] Sent 'Hello World!'"
connection.close()
过程:先和RabbitMQ server建立连接。localhost代表的是本机。假设要连接到其他主机。使用相应的主机地址就OK
;声明队列hello。因为消息不能直接传递到消息队列其中去,所以须要一次exchange,这里使用默认的交换
'',routing_key为队列的名字;然后在关闭连接。
2.消费receive.py
进入vim,编写消费进程
!/usr/bin/env python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
print ' [*] Waiting for messages. To exit press CTRL+C'
def callback(ch, method, properties, body):
print " [x] Received %r" % (body,)
channel.basic_consume(callback,queue='hello',no_ack=True)
channel.start_consuming()
过程:建立连接。声明队列。这里声明的原因是我们不知道预先存在的队列是什么,所以我们就确定化我们的目标
消费队列就是我们前面缩写的send.py里面的队列hello。然后建立我们的消费方法callback。然后声明消费的
对象队列是hello队列;然后启动。
測试的时候。首先启动生产进程send.py:
$ python send.py
[x] Sent 'Hello World!'
然后我们会显示生产的标识消息:[x] Sent 'Hello World!'
生产进程每运行一次生产就停止了。
然后再启动消费进程:
$ python receive.py
[*] Waiting for messages. To exit press CTRL+C
[x] Received 'Hello World!'
这里我们就会发如今Received后面出现了我们生产进程中发出的信息'Hello World!',这样便完毕了一次生产消
费过程。
也能够打开两个终端,在当中一个终端上一直运行生产进程。我们会发如今还有一个终端上会一直显示我们的消费标识
信息。即边生产边消费。
后面第二部分的就是多个消费worker(),还在看.....
RabbitMQ(2)的更多相关文章
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
- RabbitMq应用二
在应用一中,基本的消息队列使用已经完成了,在实际项目中,一定会出现各种各样的需求和问题,rabbitmq内置的很多强大机制和功能会帮助我们解决很多的问题,下面就一个一个的一起学习一下. 消息响应机制 ...
- 如何优雅的使用RabbitMQ
RabbitMQ无疑是目前最流行的消息队列之一,对各种语言环境的支持也很丰富,作为一个.NET developer有必要学习和了解这一工具.消息队列的使用场景大概有3种: 1.系统集成,分布式系统的设 ...
- RabbitMq应用一的补充(RabbitMQ的应用场景)
直接进入正题. 一.异步处理 场景:发送手机验证码,邮件 传统古老处理方式如下图 这个流程,全部在主线程完成,注册->入库->发送邮件->发送短信,由于都在主线程,所以要等待每一步完 ...
- RabbitMq应用一
RabbitMq应用一 RabbitMQ的具体概念,百度百科一下,我这里说一下我的理解,如果有少或者不对的地方,欢迎纠正和补充. 一个项目架构,小的时候,一般都是传统的单一网站系统,或者项目,三层架构 ...
- 缓存、队列(Memcached、redis、RabbitMQ)
本章内容: Memcached 简介.安装.使用 Python 操作 Memcached 天生支持集群 redis 简介.安装.使用.实例 Python 操作 Redis String.Hash.Li ...
- 消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ(译文)
Dissecting Message Queues 概述: 我花了一些时间解剖各种库执行分布式消息.在这个分析中,我看了几个不同的方面,包括API特性,易于部署和维护,以及性能质量..消息队列已经被分 ...
- windows下 安装 rabbitMQ 及操作常用命令
rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rab ...
- RabbitMQ + PHP (三)案例演示
今天用一个简单的案例来实现 RabbitMQ + PHP 这个消息队列的运行机制. 主要分为两个部分: 第一:发送者(publisher) 第二:消费者(consumer) (一)生产者 (创建一个r ...
- RabbitMQ + PHP (二)AMQP拓展安装
上篇说到了 RabbitMQ 的安装. 这次要在讲案例之前,需要安装PHP的AMQP扩展.不然可能会报以下两个错误. 1.Fatal error: Class 'AMQPConnection' not ...
随机推荐
- css3 transform 变形
在css3中,用transform可以实现文字或图像的旋转.缩放.倾斜和移动,并且该元素下的所有子元素,随着父元素一样转.缩放.倾斜和移动. transform属性 transform的属性包括:ro ...
- codeforces 553D . Nudist Beach 二分
题目链接 有趣的题. 给一个图, n个点m条边. 有k个点不可选择. 现在让你选出一个非空的点集, 使得点集中strength最小的点的strength最大. strength的定义:一个点周围的点中 ...
- 高精度 java的一些题
poj 1001 Exponentiation import java.util.*; import java.math.*; public class Main { public static vo ...
- VB EditGrid的用法
百度了一下,关于vb 6.0 EditGrid的用法 查不到资料
- linux printf和fork()问题小结
总结如下: printf("father begin"); pid_t pid; pid = fork(); ) { ) { printf("father out&quo ...
- vmware 使用技巧
1.虚拟机如何进入BIOS界面? 方法: 1) 开机按F2 2) 若来不及按F2的话,可以通过以下 2. 如何让虚拟机进入安全模式? 方法:开机快速按F8 3. 当不能连接到vCenter Serve ...
- Oracle EBS-SQL (GL-2):从总帐追溯到库存
SELECT je_header_id,je_line_num,trx_class_name, trx_type_name, trx_number_displayed, trx_date, comme ...
- 武汉新芯:已建成IP体系,欲以存储器为特色
武汉新芯集成电路制造公司(XMC)是地方政府投资的半导体企业,2006年由湖北省.武汉市.武汉市东湖高新区投资,并由东湖高新区管理的全资国有企业,前几年委托SMIC(中芯国际)经营管理,从2012年底 ...
- MBG 相关资源链接
MyBatis Generator(MBG)相关资源链接 http://mbg.cndocs.tk/quickstart.html http://www.mybatis.tk/ http://git. ...
- mojo 接口示例
<pre name="code" class="python">use Mojolicious::Lite; use JSON qw/encode_ ...