RabbitMQ之入门

生成者:

#coding:utf-8
__author__ = ‘similarface‘

import pika,sys
#连接RabbitMQ
credentials = pika.PlainCredentials(‘guest‘,‘guest‘)
conn_params = pika.ConnectionParameters(‘localhost‘,credentials=credentials)
conn_broker=pika.BlockingConnection(conn_params)

#获取信道
channel=conn_broker.channel()

#声明交换器
channel.exchange_declare(exchange="hello-exchange",type="direct",passive=False
                         ,durable=True,auto_delete=False
                         )

#创建消息
msg="hello world"
msg_props=pika.BasicProperties()
msg_props.content_type="text/plain"

#发布消息
for i in xrange(10000):
    channel.basic_publish(body=msg+str(i),exchange="hello-exchange",properties=msg_props,routing_key="hola")

消费者:

#coding:utf-8
__author__ = ‘similarface‘
import pika
#建立到代理服务器的连接
credentials=pika.PlainCredentials(‘guest‘,‘guest‘)
conn_params=pika.ConnectionParameters("localhost",credentials=credentials)
conn_broker=pika.BlockingConnection(conn_params)

#获取信道
channel=conn_broker.channel()

#声明交换器
channel.exchange_declare(exchange="hello-exchange",type="direct",passive=False
                         ,durable=True,auto_delete=False)

#声明队列
channel.queue_declare(queue="hello-queue")

#通过键hola 将队列和交换器绑定
channel.queue_bind(queue="hello-queue",exchange="hello-exchange",routing_key="hola")

#用于处理传入消息的函数
def msg_consumer(channel,method,header,body):
    #消息确认
    channel.basic_ack(delivery_tag=method.delivery_tag)

    if body=="quit":
        #停止消费并退出
        channel.basic_cancel(consumer_tag="hello-consumer")
        channel.stop_consuming()
    else:
        print(body)
    return
#订阅消费者
channel.basic_consume(msg_consumer,queue="hello-queue",consumer_tag="hello-consumer")
#开始消费
channel.start_consuming()
时间: 2024-08-13 00:47:10

RabbitMQ之入门的相关文章

ASP.NET Core消息队列RabbitMQ基础入门实战演练

一.课程介绍 人生苦短,我用.NET Core!消息队列RabbitMQ大家相比都不陌生,本次分享课程阿笨将给大家分享一下在一般项目中99%都会用到的消息队列MQ的一个实战业务运用场景.本次分享课程不是零基础教学,课程内容的侧重点是讲解的RabbitMQ的最实用.最简单的实战运用场景:Publish/Subscrib(发布/订阅)模式,发送端发送消息,单个接收端接收处理消息. 学完本次"是猴子都看的懂的消息队列RabbitMQ实战课程"后,阿笨带直接让你也能如此优雅简单的上手使用Rab

[转][RabbitMQ+Python入门经典] 兔子和兔子窝

http://blog.csdn.net/linvo/article/details/5750987 RabbitMQ作为一个工业级的消息队列服务器,在其客户端手册列表的Python段当中推荐了一篇blog,作为RabbitMQ+Python的入门手册再合适不过了.不过,正如其标题Rabbit and Warrens(兔 子和养兔场)一样,这篇英文写的相当俏皮,以至于对于我等非英文读者来说不像一般的技术文档那么好懂,所以,翻译一下吧.翻译过了,希望其他人可以少用一 些时间.翻译水平有限,不可能像

RabbitMQ中文入门教程

原文地址:http://adamlu.net/dev/2011/09/rabbitmq-get-started/ 这系列教程是翻译官方入门教程. 第一部分:Hello World第二部分:工作队列(Work queues)第三部分:发布/订阅(Publish/Subscribe)第四部分:路由(Routing)声明:此系列教程翻译纯属个人学习笔记,本人英文水平有限,难免会有翻译错误,本文仅供参考.欢迎指正:)

RabbitMQ (入门概念篇)

RabbitMQ是基于AMQP(Advanced Message Queuing Protocol)的可复用的消息系统,AMQP提供统一消息服务的应用层的标准高级消息队列协议,用于消息中间件的设计. RabbitMQ的开发语言是Erlang,可以使完全不同的Application共享数据.是程序中解耦的一大利器,当程序中一些不需要及时返回且耗时时间比较长的逻辑,可以使用MQ进行异步处理,缩短了请求响应时间,吞吐就大了. 基本概念 1:Host :Server服务器主机        (name主

rabbitmq+java入门(三)exchange的使用

参考:http://www.rabbitmq.com/tutorials/tutorial-three-java.html 先决条件 本教程假定RabbitMQ 在标准端口(5672)上的本地主机上安装并运行.如果您使用不同的主机,端口或证书,则连接设置需要进行调整. 在之前的教程中,我们创建了一个工作队列.工作队列背后的假设是,每个任务只被传递给一个消费者.在这一部分,我们将做一些完全不同的事情 - 我们会向多个消费者传递信息.这种模式被称为"发布/订阅". 为了说明这种模式,我们将

RabbitMQ快速入门

用处: 将一些无需即时返回且耗时的操作提取出来.进行了异步处理,而这种异步处理的方式大大的节省了server的请求响应时间,从而提高了系统的吞吐量. 如登录系统调用短信系统和安全系统,可以通过消息中间件来调用短信和安全系统. 队列服务, 会有三个概念: 发消息者.队列.收消息者, RabbitMQ 在这个基本概念之上, 多做了一层抽象, 在发消息者和 队列之间, 加入了交换器 (Exchange). 这样发消息者和队列就没有直接联系, 转而变成发消息者把消息给交换器, 交换器根据调度策略再把消息

rabbitmq 极速入门

1.新建2个控制台项目 2.生产者代码 class Program { static void Main(string[] args) { ConnectionFactory factory = new ConnectionFactory() { HostName = "127.0.0.1", UserName = "guest", Password = "guest", }; //第一步:创建connection var connection

RabbitMQ的入门学习

RabbitMq消息队列 参考:https://blog.csdn.net/hellozpc/article/details/81436980 什么是消息队列 MQ :message Queue ,实际上是一个队列,先进先出,队列中存放的是message 主要用途:不同进程process/线程Thread之间的通信 产生消息队列的原因 1.不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改另一个进程 2.不同进程(process)之间传递消息时,为了实

RabbitMq 集成 spring boot 消息队列 入门Demo

spring boot 集成 RabbitMq还是很方便的.现在来一个简单的例子来集成rabbitmq.入门demo. 主要概念: 其中比较重要的概念有 4 个,分别为:虚拟主机,交换机,队列,和绑定. 虚拟主机:一个虚拟主机持有一组交换机.队列和绑定.为什么需要多个虚拟主机呢?很简单,RabbitMQ当中,用户只能在虚拟主机的粒度进行权限控制. 因此,如果需要禁止A组访问B组的交换机/队列/绑定,必须为A和B分别创建一个虚拟主机.每一个RabbitMQ服务器都有一个默认的虚拟主机"/"