一个新的应用接入云消息队列 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:创建实例的静态用户名密码