开发者如何使用云消息队列 RabbitMQ 版

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 【10月更文挑战第13天】开发者如何使用云消息队列 RabbitMQ 版

云消息队列 RabbitMQ 版是一款基于自研的分布式存储架构实现的 AMQP 0-9-1 协议的消息产品。完全兼容开源RabbitMQ社区、开箱即用、无需部署、免运维,帮助您快速上云。

下面是一个详细的步骤指南,包括如何在阿里云上创建 RabbitMQ 实例、配置访问权限,以及使用 Python 代码连接和操作 RabbitMQ。

步骤一:创建 RabbitMQ 实例

  1. 登录阿里云控制台:访问阿里云官网,并使用您的账号登录。
  2. 进入消息队列 RabbitMQ 版:在控制台首页,找到并点击“云消息队列 RabbitMQ 版”服务。

image.png

  1. 创建实例

image.png

按照付费方式不同,有serviceless按量付费和预付费两种。

image.png

在serverless按量付费中,有细分为serverless和节省计划。

image.png

在预付费中,按规格类型又细分为专业版、企业版和铂金版。

image.png

  • 选择实例类型(单节点或集群)、实例规格、VPC 网络等配置。
  • 设置实例名称和描述。
  • 确认配置并点击“立即购买”。

步骤二:配置访问权限

  1. 获取连接信息:在实例详情页面,找到“连接信息”部分,获取虚拟主机(vhost)、用户名、密码和连接地址。
  2. 配置安全组:确保您的 ECS 实例或本地开发环境可以访问 RabbitMQ 实例的端口(默认是 5672 和 15672)。

步骤三:安装 RabbitMQ 客户端库

以 Python 为例,可以使用 pika 库来连接和操作 RabbitMQ。首先,您需要安装 pika

bash复制代码
pip install pika

步骤四:编写代码

下面是一个简单的 Python 示例,演示如何连接到阿里云 RabbitMQ 实例、声明一个队列、发送和接收消息。

python复制代码
import pika  
# RabbitMQ 连接信息  
rabbitmq_host = 'your-rabbitmq-instance-address'  # 替换为您的 RabbitMQ 实例地址  
rabbitmq_port = 5672  # 默认端口  
rabbitmq_vhost = '/'  # 虚拟主机  
rabbitmq_user = 'your-username'  # 替换为您的用户名  
rabbitmq_password = 'your-password'  # 替换为您的密码  
# 建立连接  
connection = pika.BlockingConnection(pika.ConnectionParameters(  
    host=rabbitmq_host,  
    port=rabbitmq_port,  
    virtual_host=rabbitmq_vhost,  
    credentials=pika.PlainCredentials(rabbitmq_user, rabbitmq_password)  
))  
# 创建一个频道  
channel = connection.channel()  
# 声明一个队列  
queue_name = 'hello'
channel.queue_declare(queue=queue_name)  
# 发送消息  
message = 'Hello RabbitMQ!'
channel.basic_publish(exchange='',  
                      routing_key=queue_name,  
                      body=message)  
print(f" [x] Sent '{message}'")  
# 接收消息  
def callback(ch, method, properties, body):  
print(f" [x] Received {body}")  
channel.basic_consume(queue=queue_name,  
                      on_message_callback=callback,  
                      auto_ack=True)  
print(' [*] Waiting for messages. To exit press CTRL+C')  
channel.start_consuming()

代码解释

  1. 导入 pika:这是 RabbitMQ 的 Python 客户端库。
  2. 设置连接信息:替换为您的 RabbitMQ 实例的连接信息。
  3. 建立连接:使用 pika.BlockingConnection 创建连接。
  4. 创建频道:通过连接创建一个频道,用于发送和接收消息。
  5. 声明队列:使用 channel.queue_declare 声明一个队列。如果队列已经存在,这个操作是幂等的。
  6. 发送消息:使用 channel.basic_publish 发送消息到指定的队列。
  7. 接收消息:定义一个回调函数 callback,当有消息到达时,该函数会被调用。然后使用 channel.basic_consume 开始消费消息。
  8. 开始消费:调用 channel.start_consuming 开始接收消息。

注意事项

  1. 异常处理:在生产环境中,应添加异常处理逻辑,确保连接失败或消息发送失败时能够妥善处理。
  2. 安全性:确保您的 RabbitMQ 实例配置了强密码,并且只在可信的网络环境中访问。
  3. 资源管理:使用完连接后,记得关闭连接以释放资源。

通过以上步骤,您应该能够成功地在阿里云上部署并使用 RabbitMQ 进行消息传递。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
2月前
|
消息中间件 物联网 Java
开发者如何使用云消息队列 MQTT 版
【10月更文挑战第14天】开发者如何使用云消息队列 MQTT 版
128 14
|
2月前
|
消息中间件 JSON Java
开发者如何使用轻量消息队列MNS
【10月更文挑战第19天】开发者如何使用轻量消息队列MNS
93 5
|
2月前
|
消息中间件 监控 Java
开发者如何使用云消息队列 RocketMQ 版
【10月更文挑战第12天】开发者如何使用云消息队列 RocketMQ 版
209 3
|
2月前
|
消息中间件 Java Kafka
开发者如何使用云消息队列 Kafka 版
【10月更文挑战第15天】开发者如何使用云消息队列 Kafka 版
98 4
|
消息中间件 存储 Cloud Native
云原生开源开发者沙龙「微服务X消息队列专场」
云原生开源开发者沙龙「微服务X消息队列专场」
|
7月前
|
消息中间件 PHP 开发工具
阿里云OpenAPI RocketMQ 5.0的PHP收发消息文档可以在阿里云开发者门户中找到
【1月更文挑战第22天】【1月更文挑战第108篇】阿里云OpenAPI RocketMQ 5.0的PHP收发消息文档可以在阿里云开发者门户中找到
128 6
|
消息中间件 数据安全/隐私保护 RocketMQ
《开发者评测》之RocketMQ从入门到精通获奖名单
RocketMQ从入门到精通活动获奖名单正式公布!
116 0
|
消息中间件 RocketMQ 开发者
《开发者评测》之RocketMQ六大场景评测获奖名单
RocketMQ六大场景评测活动获奖名单出炉啦!
468 1
《开发者评测》之RocketMQ六大场景评测获奖名单
|
消息中间件 Cloud Native 开发者
关于云原生开源开发者沙龙「微服务X消息队列专场」的延期通知
关于云原生开源开发者沙龙「微服务X消息队列专场」的延期通知
|
消息中间件 Cloud Native 开发者
云原生开源开发者沙龙「微服务X消息队列专场」
「8月27日深圳」云原生开源开发者沙龙微服务X消息队列专场
786 1
云原生开源开发者沙龙「微服务X消息队列专场」

相关产品

  • 云消息队列 MQ