使用pika 简单走通Rabbitmq(及简单模式)

首先现在工程里面安装pika

pip install pika

producer.py 代码如下:

import pika

# 资质(账号)
credentials = pika.PlainCredentials('zl', 'zl')

# 建立一个实体
connection = pika.BlockingConnection(
    pika.ConnectionParameters("192.168.2.155", 5672, '/', credentials)
)

# 声明一个管道
channel = connection.channel()

# 再管道里声明queue
channel.queue_declare(queue='hello')

# RabbitMQ a message can never be sent directly to the queue, it always needs to go through an exchange.
# RabbitMQ 需要经过一个Exchange 发送到queue, 不会直接发送给queue

channel.basic_publish(exchange='',  # exchange 名称
                      routing_key='hello',  # 绑定名称
                      body='Hello World!'
                      )

connection.close()

consumer.py 代码如下


import pika

# 建立资质
credentials = pika.PlainCredentials('zl', 'zl')

# 建立一个实体
connection = pika.BlockingConnection(
    pika.ConnectionParameters("192.168.2.155", 5672, '/', credentials)
)
# 声明一个管道
channel = connection.channel()

# 为什么声明了一个‘hello’队列?
# 如果确定已经声明了,可以不声明。但是你不知道那个机器先运行,所以要声明两次。
# 通常是先运行消费者
channel.queue_declare(queue='hello')

# ##### 以上内容跟生产者的内容完全一样。


def callback(ch, method, properties, body):
    """
    回调函数, 获取消息后, 用于处理
    :param ch:
    :param method:
    :param properties:
    :param body: 收到的消息, bytes 类型
    :return:
    """
    print('properties', properties)
    print('method', method)
    print('ch', ch)
    body = str(body, 'utf-8')
    print('收到消息%s' % body)

"""
回调函数中 打印的内容
properties <BasicProperties>
method <Basic.Deliver(['consumer_tag=ctag1.b998f5fa76f248fb8173f6fc7be84114', 'delivery_tag=1', 'exchange=', 'redelivered=False', 'routing_key=hello'])>
ch <BlockingChannel impl=<Channel number=1 OPEN conn=<SelectConnection OPEN transport=<pika.adapters.utils.io_services_utils._AsyncPlaintextTransport object at 0x000001EA39C9E760> params=<ConnectionParameters host=192.168.2.155 port=5672 virtual_host=/ ssl=False>>>>
收到消息b'Hello World!'
"""
channel.basic_consume(on_message_callback=callback, queue='hello', auto_ack=True)

channel.start_consuming() # 开始消费消息

结果:(先启动consumer)我们成功收到消息
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值