步骤二:创建资源

更新时间:

一个新的应用接入云消息队列 RabbitMQ 版服务端,您需要提前创建云消息队列 RabbitMQ 版的相关资源,包括创建云消息队列 RabbitMQ 版实例、创建Vhost、创建Exchange、创建Queue、绑定Exchange和Queue、创建用户名密码以及获取实例接入点。调用消息收发SDK时,您需要将这些资源信息填写到SDK参数中。

前提条件

若您使用RAM用户创建资源,需要先为其授权,具体请参见步骤一:(可选)RAM用户授权

创建实例

实例是一个独立的云消息队列 RabbitMQ 版资源实体,包含Vhost、Exchange、Queue等基本的资源要素。

  1. 登录云消息队列 RabbitMQ 版控制台,然后在左侧导航栏选择实例列表

  2. 在顶部菜单栏选择地域,然后在实例列表页面,单击创建实例

  3. 在购买页完成基本配置并勾选服务协议,然后单击立即购买

  4. 根据提示完成支付。

    实例列表页面的顶部菜单栏,选择地域,您可以看到创建的实例。

    说明
    • 专业版实例和企业版实例购买后,立即进入服务中状态。

    • 铂金版实例购买后,首先进入部署中状态,待集群分配后,再进入服务中状态。

获取实例接入点

在收发消息时,您需要为发布端和订阅端配置该接入点,客户端通过接入点接入云消息队列 RabbitMQ 版实例。

  1. 登录云消息队列 RabbitMQ 版控制台,然后在左侧导航栏选择实例列表

  2. 实例列表页面的顶部菜单栏选择地域,然后在实例列表中,单击目标实例名称。

  3. 实例详情页面的接入点信息页签,将鼠标指针移动到目标类型的接入点,单击该接入点右侧的复制图标,复制该接入点。

    类型

    说明

    示例值

    公网接入点

    公网环境可读写。按量付费实例默认支持,预付费实例需在购买时选择才支持。

    XXX.net.mq.amqp.aliyuncs.com

    VPC接入点

    VPC环境可读写。按量付费实例和预付费实例默认都支持。

    XXX.vpc.mq.amqp.aliyuncs.com

资源配置

1.创建Vhost

Vhost是指虚拟主机,用作逻辑隔离,分别管理各自的Exchange、Queue和Binding,使得应用安全地运行在不同的Vhost上,相互之间不会干扰。一个实例下可以有多个Vhost,一个Vhost里面可以有若干个Exchange和Queue。Producer和Consumer连接云消息队列 RabbitMQ 版需要指定一个Vhost。

  1. 登录云消息队列 RabbitMQ 版控制台,然后在左侧导航栏选择实例列表

  2. 实例列表页面的顶部菜单栏选择地域,然后在实例列表中,单击目标实例名称。

  3. 在左侧导航栏,单击Vhost 列表

  4. Vhost 列表页面,单击创建 Vhost

  5. 创建 Vhost面板的Vhost名称文本框,输入Vhost名称,然后单击确定

2.创建Exchange

Producer将消息发送到Exchange,由Exchange将消息路由到一个或多个Queue中(或者丢弃)。Exchange根据Routing Key将消息路由到Queue。不同类型的Exchange的路由规则不同。更多信息,请参见Exchange

  1. 在该实例的左侧导航栏,单击Exchange 列表

  2. Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost,然后单击创建 Exchange

  3. 创建 Exchange面板,输入Exchange名称,选择Exchange类型,设置是否为Internal类型,然后单击确定

    参数

    描述

    Exchange 名称

    Exchange名称。以amq.开头的为保留字段,因此不能使用。例如:amq.test。

    类型

    Exchange类型。取值:

    • direct:该类型的路由规则会将消息路由到Routing Key完全匹配的Queue中。

    • topic:该类型与direct类型相似。Topic Exchange路由规则没有Direct Exchange那么严格,支持模糊匹配和多条件匹配,即该类型Exchange使用Routing Key模式匹配和字符串比较的方式将消息路由至绑定的Queue中。

    • fanout:该类型的路由规则非常简单,会把所有发送到该Exchange的消息路由到所有与它绑定的Queue中,相当于广播功能。

    • headers:该类型与direct类型相似。Headers Exchange使用Headers属性代替Routing Key进行路由匹配,在绑定Headers Exchange和Queue时,设置绑定属性的键值对;在向Headers Exchange发送消息时,设置消息的Headers属性键值对,使用消息Headers属性键值对和绑定属性键值对比较的方式将消息路由至绑定的Queue。

    • x-delayed-message:通过声明该类Exchange,您可以自定义消息的Header属性x-delay来指定消息延时投递的时间段,单位为毫秒。消息将在x-delay中定义的时间段后,根据路由规则被投递到对应的Queue。路由规则取决于x-delayed-type中指定的Exchange路由类型。

    • x-consistent-hash:x-consistent-hash Exchange支持将Routing Key或Header值进行Hash计算,使用一致性哈希算法将消息路由到不同的Queue上。

    x-delayed-type

    当Exchange类型为x-delayed-message时,需要配置此参数,以指定Exchange的路由类型。

    哈希取值

    当Exchange类型为x-consistent-hash时,需要配置此参数,以指定Hash计算的输入值为哪种类型。取值如下:

    • RoutingKey

    • Header 值:使用Header方式作为Hash计算输入值时,您需要定义hash-header参数的取值。

    hash-header

    当Exchange类型为x-consistent-hash哈希取值Header 值时,需要配置此参数,作为指定Hash计算的输入值。

    Internal

    是否为Internal类型,默认值为。取值:

    • :内建类型,用于Exchange和Exchange之间的绑定。

    • :非内建类型,用于Exchange和Queue之间的绑定。

3.创建Queue

Queue是指队列,云消息队列 RabbitMQ 版的消息都会被投入到一个或多个Queue中。

  1. 在该实例的左侧导航栏,单击Queue 列表

  2. Queue 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost,单击创建 Queue

  3. 创建 Queue面板,在Queue 名称文本框输入Queue的名称,选择是否为Auto Delete类型,单击高级选项,设置Queue的参数,然后单击确定

    参数

    描述

    说明

    Queue 名称

    Queue的名称

    • 只能包含字母、数字、短划线(-)、下划线(_)、半角句号(.)、井号(#)、正斜线(/)、at符号(@)。

    • 长度限制在1~255字符。

    • 创建后无法修改,只能删除重建。

    • 以amq.开头的为保留字段,因此不能使用。例如:amq.test。

    Auto Delete

    最后一个Consumer取消订阅后,Queue是否自动删除。

    • true:在订阅该Queue消息的最后一个Consumer取消订阅该Queue的消息后,自动删除该Queue。

    • false:在订阅该Queue消息的最后一个Consumer取消订阅该Queue的消息后,不自动删除该Queue。

    高级选项

    Queue的参数设置,可用于设置死信Exchange、死信Routing Key和消息存活时间。

    • DeadLetterExchange:指定死信消息发送的目标Exchange。

    • DeadLetterRoutingKey:指定死信消息的Routing Key,即死信Exchange会将消息发送至匹配该死信Routing Key所对应的Queue。

    • MessageTTL:消息存活时间,单位毫秒(ms)。在指定时间内未被成功消费的消息会变成死信消息,该消息将会被发送到死信Exchange。更多信息,请参见消息存活时间

4.创建绑定关系

  1. Queue 列表页面,选择指定Queue,在其操作列单击详情

  2. Queue 详情页面单击被绑定信息页签,单击添加被绑定

  3. 添加被绑定面板,选择源Exchange,在Routing Key文本框输入Routing Key,然后单击确定

    说明

    若被绑定的Exchange的类型为x-consistent-hash时,Routing Key表示绑定的Queue的权重,只能设置为整数,取值范围为[1~20]。

5.创建用户名密码

  1. 在该实例的左侧导航栏,单击静态用户名密码

  2. 静态用户名密码页面,单击创建用户名密码

  3. 创建用户名密码面板,输入AccessKey IDAccessKey Secret,然后单击确定

    说明

    AccessKey IDAccessKey Secret需要在阿里云RAM控制台获取,具体获取方式,请参见创建AccessKey

    静态用户名密码页面,显示创建的静态用户名与密码,密码处于隐藏状态。用户名密码

  4. 在创建的静态用户名密码的密码列,单击显示密码,可查看用户名的密码。

后续步骤

步骤三:调用SDK收发消息

相关文档

除了控制台,您还可以通过云消息队列 RabbitMQ 版的API创建相关资源。