【RabbitMQ】3、hello world(简单模式)

  • 在本教程的这一部分中,我们将用 Java 编写两个程序。发送单个消息的生产者和接收消息并打印出来的消费者。我们将介绍 Java API 中的一些细节。
  • 在下图中,“ P”是我们的生产者,“ C”是我们的消费者。中间的框是一个队列-RabbitMQ 代表使用者保留的消息缓冲区
  • 生产者代码:
import pika

# mq的用户名和密码,用于认证
credentials = pika.PlainCredentials(username='root', password='root')
# 1、连接rabbitmq
connection = pika.BlockingConnection(pika.ConnectionParameters(
    host='47.94.132.145',
    virtual_host='/',
    port=5672,
    credentials=credentials
))

channel = connection.channel() # 创建一个AMQP信道

# 2、创建队列
channel.queue_declare(queue='hello') # 声明队列

# 3、向指定队列插入数据
channel.basic_publish(
    exchange='',  # 简单模式,交换器为空。交换器可以精确的指定消息应该发到哪个队列中
    routing_key='hello',  # 指定队列
    body=b"Hello World"  # 发送的内容
)

print("[x] send 'Hello World'")
connection.close()
  • 消费者代码:
# -*- coding: utf-8 -*-
import pika

credentials = pika.PlainCredentials(username='root', password='root')

connection = pika.BlockingConnection(pika.ConnectionParameters(
    host='47.94.132.145',
    virtual_host='/',
    port=5672,
    credentials=credentials
))
channel = connection.channel() # 创建一个AMQP信道

# 创建队列
channel.queue_declare(queue='hello') # 声明消息队列,消息在这个队列中传递,如果不存在,则创建队列


# 确定回调函数
def callback(ch, method, properties, body):
    print("[x] Received %r" % body)


# 确定监听队列参数
channel.basic_consume(
    queue='hello',  # 队列
    auto_ack=True,  # 默认应答
    on_message_callback=callback  # 回调函数
)

print("[*] waiting for message. to exit press CTRL+C")
# 正式监听
channel.start_consuming()  # 开始接收信息,并进入阻塞状态,队列里有信息就会调用callback进行处理

posted @   郭祺迦  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示