栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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

使用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 
method 
ch  params=>>>
收到消息b'Hello World!'
"""
channel.basic_consume(on_message_callback=callback, queue='hello', auto_ack=True)

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

结果:(先启动consumer)我们成功收到消息

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/745782.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号