一个新的应用接入云消息队列 RabbitMQ 版服务端,您需要提前创建云消息队列 RabbitMQ 版的相关资源,包括创建云消息队列 RabbitMQ 版实例、创建Vhost、创建Exchange、创建Queue、绑定Exchange和Queue、创建用户名密码以及获取实例接入点。调用消息收发SDK时,您需要将这些资源信息填写到SDK参数中。
前提条件
若您使用RAM用户创建资源,需要先为其授权,具体请参见步骤一:(可选)RAM用户授权。
创建实例
实例是一个独立的云消息队列 RabbitMQ 版资源实体,包含Vhost、Exchange、Queue等基本的资源要素。
登录云消息队列 RabbitMQ 版控制台,然后在左侧导航栏选择实例列表。
在顶部菜单栏选择地域,然后在实例列表页面,单击创建实例。
在购买页完成基本配置并勾选服务协议,然后单击立即购买。
根据提示完成支付。
在实例列表页面的顶部菜单栏,选择地域,您可以看到创建的实例。
说明专业版实例和企业版实例购买后,立即进入服务中状态。
铂金版实例购买后,首先进入部署中状态,待集群分配后,再进入服务中状态。
获取实例接入点
在收发消息时,您需要为发布端和订阅端配置该接入点,客户端通过接入点接入云消息队列 RabbitMQ 版实例。
登录云消息队列 RabbitMQ 版控制台,然后在左侧导航栏选择实例列表。
在实例列表页面的顶部菜单栏选择地域,然后在实例列表中,单击目标实例名称。
在实例详情页面的接入点信息页签,将鼠标指针移动到目标类型的接入点,单击该接入点右侧的图标,复制该接入点。
类型
说明
示例值
公网接入点
公网环境可读写。按量付费实例默认支持,预付费实例需在购买时选择才支持。
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。
登录云消息队列 RabbitMQ 版控制台,然后在左侧导航栏选择实例列表。
在实例列表页面的顶部菜单栏选择地域,然后在实例列表中,单击目标实例名称。
在左侧导航栏,单击Vhost 列表。
在Vhost 列表页面,单击创建 Vhost。
在创建 Vhost面板的Vhost名称文本框,输入Vhost名称,然后单击确定。
2.创建Exchange
Producer将消息发送到Exchange,由Exchange将消息路由到一个或多个Queue中(或者丢弃)。Exchange根据Routing Key将消息路由到Queue。不同类型的Exchange的路由规则不同。更多信息,请参见Exchange。
在该实例的左侧导航栏,单击Exchange 列表。
在Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost,然后单击创建 Exchange。
在创建 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中。
在该实例的左侧导航栏,单击Queue 列表。
在Queue 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost,单击创建 Queue。
在创建 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.创建绑定关系
在Queue 列表页面,选择指定Queue,在其操作列单击详情。
在Queue 详情页面单击被绑定信息页签,单击添加被绑定。
在添加被绑定面板,选择源Exchange,在Routing Key文本框输入Routing Key,然后单击确定。
说明若被绑定的Exchange的类型为x-consistent-hash时,Routing Key表示绑定的Queue的权重,只能设置为整数,取值范围为[1~20]。
5.创建用户名密码
在该实例的左侧导航栏,单击静态用户名密码。
在静态用户名密码页面,单击创建用户名密码。
在创建用户名密码面板,输入AccessKey ID和AccessKey Secret,然后单击确定。
说明AccessKey ID和AccessKey Secret需要在阿里云RAM控制台获取,具体获取方式,请参见创建AccessKey。
静态用户名密码页面,显示创建的静态用户名与密码,密码处于隐藏状态。
在创建的静态用户名密码的密码列,单击显示密码,可查看用户名的密码。
后续步骤
相关文档
除了控制台,您还可以通过云消息队列 RabbitMQ 版的API创建相关资源。
CreateInstance:创建云消息队列 RabbitMQ 版实例
ListInstances:获取实例的接入点
CreateVirtualHost:创建Vhost
CreateExchange:创建Exchange
CreateQueue:创建Queue
CreateBinding:创建绑定关系
CreateAccount:创建实例的静态用户名密码