高弹性,低成本,云消息队列 RabbitMQ实践
手动部署
45
https://www.aliyun.com/solution/tech-solution/rabbitmq-serverless
方案概览
消息队列 RabbitMQ 版由阿里云基于 AMQP 标准协议自研,完全兼容 RabbitMQ 开源生态以及多语言客户端,打造分布式、高吞吐、低延迟、高可扩展的云消息服务。开箱即用,用户无需部署免运维,轻松实现快速上云,阿里云提供全托管服务,更专业、更可靠、更安全。
方案架构
本方案将创建云消息队列 RabbitMQ 版 Serverless 系列实例来进行消息的生产和消费,根据实际使用量计费,并查看指标变化和消息轨迹。
本方案架构包含消息生产者、消息队列、消息消费者三个核心模块。消息在云消息队列 RabbitMQ 版的组件之间流动过程为:
生产者向 Exchange 发送消息;
Exchange 根据消息属性将消息路由到 Queue 进行存储;
消费者从 Queue 拉取消息进行消费。
部署准备
5
开始部署前,请按以下指引完成账号申请、账号充值。
准备账号
部署资源
25
1.获取AccessKey并授权
创建RAM用户。
使用阿里云账号(主账号)或RAM管理员登录RAM控制台。
在左侧导航栏,选择 。
在用户页面,单击创建用户。
在创建用户页面的用户账号信息区域,设置用户基本信息。
登录名称:可包含英文字母、数字、半角句号(.)、短划线(-)和下划线(_),最多64个字符。
显示名称:最多包含128个字符或汉字。
在访问方式区域,选择OpenAPI 调用访问。
单击确定。
根据界面提示,完成安全验证。
获取AccessKey。
创建RAM用户成功后,在创建成功页面中复制AccessKey ID和AccessKey Secret。
重要系统会自动为RAM用户生成一个AccessKey ID和AccessKey Secret,且AccessKey Secret只在创建时显示,不支持查看,请妥善保管。
创建自定义权限策略。
使用阿里云账号(主账号)或RAM管理员登录RAM控制台。
在左侧导航栏,选择 。
在权限策略页面,单击创建权限策略。
在创建权限策略页面,单击可视化编辑页签。
配置权限策略。
在效果区域,选择允许。
在服务区域,选择其他类目中的 。
在操作区域,选择全部操作。
在资源区域,选择全部资源。
单击继续编辑基本信息。
输入权限策略名称和备注。
单击确定。
根据界面提示,完成安全验证。
向RAM用户授权自定义权限策略。
使用阿里云账号(主账号)或RAM管理员登录RAM控制台。
在左侧导航栏,选择 。
在用户页面,单击目标RAM用户操作列的添加权限。
在新增授权面板,为RAM用户添加权限。
选择资源范围:账号级别。
选择授权主体:保持默认值即可。
选择权限策略:单击所有策略类型下拉框,选择自定义策略,在下面的策略列表表格中选中前一步骤中创建的自定义权限策略名称。
单击确认新增授权。
根据界面提示,完成安全验证。
单击关闭。
2.创建实例和用户名密码
前往云消息队列 RabbitMQ 版控制台,在“实例列表”页面,点击“创建实例”,在弹窗中选择付费方式为“Serverless 按量后付费”。
在实例购买页面,“地域和可用区”选择“华东1(杭州)”,“公网支持”和“消息轨迹支持”选项都选择“支持”,其他选项均保持默认值即可。勾选“服务协议”并点击“立即购买”,点击创建。
创建成功后返回管理控制台,在实例列表页面可以看到一个新增的实例,点击实例名称或详情,即可进入实例详情页。
在云消息队列 RabbitMQ 版控制台的左侧导航栏中,点击实例列表,打开具体实例,单击静态用户名密码。
在静态用户名密码页面,单击创建用户名密码。
在创建用户名密码面板,填写上一步创建的AccessKey ID和AccessKey Secret,单击确定。
返回如下页面,您可查看到创建的用户名和密码。
3.创建资源和绑定关系
为了确保示例程序的正常运行,请严格按照步骤中给出的名称进行命名。如有必要修改,请务必同步更新示例程序中的属性。
在左侧导航栏中,单击Vhost列表。
在Vhost列表页面,单击创建Vhost。
在创建Vhost面板,Vhost名称设置为test-vhost。
在左侧导航栏中,单击Exchange列表。
在Exchange列表页面的Vhost test-vhost下,单击创建Exchange。
在创建Exchange面板,Exchange名称设置为test-exchange,类型选择direct,Internal选择否,单击确定。
说明:更多Exchange类型说明,详情请参见Exchanges and Exchange Types。
在左侧导航栏中,单击Queue列表。
在Queue列表页面的Vhost test-vhost下,单击创建Queue。
在创建Queue面板,Queue名称设置为test-queue,Auto delete选择否,其他选项保持默认值即可,单击确定。
创建Exchange和Queue的绑定关系。
在左侧导航栏中,单击Exchange列表。
在Exchange列表页面,单击test-exchange。
在test-exchange详情页面的绑定关系区域,单击添加绑定。
在添加绑定面板,绑定目标类型选择Queue,绑定目标选择创建的test-queue,Routing Key设置为test-routing-key,单击确定。
说明:发送消息时设置的Routing Key需要和当前绑定关系中的Routing Key完全匹配,消息才能路由到Queue。本实验设置路由到test-queue,其Routing Key为test-routing-key。
方案验证
10
完成及清理
5
在完成本方案操作后,如果无需继续使用资源,请根据以下步骤,先删除RAM用户,再删除RabbitMQ实例。
删除RAM用户。
使用阿里云账号登录控制台,删除RAM用户,详细操作请参见删除RAM用户。
删除RabbitMQ实例。
2.1. 点击RabbitMQ控制台,在 中找到创建的实例,点击 ,等待实例删除完成。
自建迁移上云(可选)
如果您希望从开源 RabbitMQ 迁移到云消息队列 RabbitMQ 版,请参见开源RabbitMQ迁移上云。
一键部署
30
https://www.aliyun.com/solution/tech-solution/rabbitmq-serverless
方案概览
消息队列 RabbitMQ 版由阿里云基于 AMQP 标准协议自研,完全兼容 RabbitMQ 开源生态以及多语言客户端,打造分布式、高吞吐、低延迟、高可扩展的云消息服务。开箱即用,用户无需部署免运维,轻松实现快速上云,阿里云提供全托管服务,更专业、更可靠、更安全。
方案架构
本方案将创建云消息队列 RabbitMQ 版 Serverless 系列实例来进行消息的生产和消费,根据实际使用量计费,并查看指标变化和消息轨迹。
本方案架构包含消息生产者、消息队列、消息消费者三个核心模块。消息在云消息队列 RabbitMQ 版的组件之间流动过程为:
生产者向 Exchange 发送消息;
Exchange 根据消息属性将消息路由到 Queue 进行存储;
消费者从 Queue 拉取消息进行消费。
部署准备
5
开始部署前,请按以下指引完成账号申请、账号充值。
准备账号
部署资源
10
一键部署
单击一键部署前往ROS控制台,修改资源栈名称,进行安全确认后点击创建。
ROS控制台目前不支持设置静态用户名和密码的步骤,用户可以在输出中查看AK和SK,然后到RabbitMQ控制台设置静态用户名和密码。
开始创建后,等待约5分钟左右,显示创建成功。
查看密钥
点击
栏,查看AccessKeyId、AccessKeySecret。设置静态用户名密码
在云消息队列 RabbitMQ 版控制台的左侧导航栏中,点击实例列表,打开具体实例,单击静态用户名密码。
在静态用户名密码页面,单击创建用户名密码。
在创建用户名密码面板,填写上一步创建的AccessKey ID和AccessKey Secret,单击确定。
返回如下页面,您可查看到创建的用户名和密码。
方案验证
10
完成及清理
5
点击ROS控制台,在 中找到创建的实例,点击 ,清理创建的资源。
自建迁移上云(可选)
如果您希望从开源 RabbitMQ 迁移到云消息队列 RabbitMQ 版,请参见开源RabbitMQ迁移上云。