步驟二:創(chuàng)建資源
一個新的應(yīng)用接入云消息隊列 RabbitMQ 版服務(wù)端,您需要提前創(chuàng)建云消息隊列 RabbitMQ 版的相關(guān)資源,包括創(chuàng)建云消息隊列 RabbitMQ 版實例、創(chuàng)建Vhost、創(chuàng)建Exchange、創(chuàng)建Queue、綁定Exchange和Queue、創(chuàng)建用戶名密碼以及獲取實例接入點(diǎn)。調(diào)用消息收發(fā)SDK時,您需要將這些資源信息填寫到SDK參數(shù)中。
創(chuàng)建實例
實例是一個獨(dú)立的云消息隊列 RabbitMQ 版資源實體,包含Vhost、Exchange、Queue等基本的資源要素。
登錄云消息隊列 RabbitMQ 版控制臺,然后在左側(cè)導(dǎo)航欄選擇實例列表。
在頂部菜單欄選擇地域,然后在實例列表頁面,單擊創(chuàng)建實例。
在購買頁完成基本配置并勾選服務(wù)協(xié)議,然后單擊立即購買。
根據(jù)提示完成支付。
在實例列表頁面的頂部菜單欄,選擇地域,您可以看到創(chuàng)建的實例。
說明專業(yè)版實例和企業(yè)版實例購買后,立即進(jìn)入服務(wù)中狀態(tài)。
鉑金版實例購買后,首先進(jìn)入部署中狀態(tài),待集群分配后,再進(jìn)入服務(wù)中狀態(tài)。
獲取實例接入點(diǎn)
在收發(fā)消息時,您需要為發(fā)布端和訂閱端配置該接入點(diǎn),客戶端通過接入點(diǎn)接入云消息隊列 RabbitMQ 版實例。
登錄云消息隊列 RabbitMQ 版控制臺,然后在左側(cè)導(dǎo)航欄選擇實例列表。
在實例列表頁面的頂部菜單欄選擇地域,然后在實例列表中,單擊目標(biāo)實例名稱。
在實例詳情頁面的接入點(diǎn)信息頁簽,將鼠標(biāo)指針移動到目標(biāo)類型的接入點(diǎn),單擊該接入點(diǎn)右側(cè)的圖標(biāo),復(fù)制該接入點(diǎn)。
類型
說明
示例值
公網(wǎng)接入點(diǎn)
公網(wǎng)環(huán)境可讀寫。按量付費(fèi)實例默認(rèn)支持,預(yù)付費(fèi)實例需在購買時選擇才支持。
XXX.net.mq.amqp.aliyuncs.com
VPC接入點(diǎn)
VPC環(huán)境可讀寫。按量付費(fèi)實例和預(yù)付費(fèi)實例默認(rèn)都支持。
XXX.vpc.mq.amqp.aliyuncs.com
資源配置
1.創(chuàng)建Vhost
Vhost是指虛擬主機(jī),用作邏輯隔離,分別管理各自的Exchange、Queue和Binding,使得應(yīng)用安全地運(yùn)行在不同的Vhost上,相互之間不會干擾。一個實例下可以有多個Vhost,一個Vhost里面可以有若干個Exchange和Queue。Producer和Consumer連接云消息隊列 RabbitMQ 版需要指定一個Vhost。
登錄云消息隊列 RabbitMQ 版控制臺,然后在左側(cè)導(dǎo)航欄選擇實例列表。
在實例列表頁面的頂部菜單欄選擇地域,然后在實例列表中,單擊目標(biāo)實例名稱。
在左側(cè)導(dǎo)航欄,單擊Vhost 列表。
在Vhost 列表頁面,單擊創(chuàng)建 Vhost。
在創(chuàng)建 Vhost面板的Vhost名稱文本框,輸入Vhost名稱,然后單擊確定。
2.創(chuàng)建Exchange
Producer將消息發(fā)送到Exchange,由Exchange將消息路由到一個或多個Queue中(或者丟棄)。Exchange根據(jù)Routing Key將消息路由到Queue。不同類型的Exchange的路由規(guī)則不同。更多信息,請參見Exchange。
在該實例的左側(cè)導(dǎo)航欄,單擊Exchange 列表。
在Exchange 列表頁面,在當(dāng)前 Vhost右側(cè)的切換下拉列表中,選擇Vhost,然后單擊創(chuàng)建 Exchange。
在創(chuàng)建 Exchange面板,輸入Exchange名稱,選擇Exchange類型,設(shè)置是否為Internal類型,然后單擊確定。
參數(shù)
描述
Exchange 名稱
Exchange名稱。以amq.開頭的為保留字段,因此不能使用。例如:amq.test。
類型
Exchange類型。取值:
direct:該類型的路由規(guī)則會將消息路由到Routing Key完全匹配的Queue中。
topic:該類型與direct類型相似。Topic Exchange路由規(guī)則沒有Direct Exchange那么嚴(yán)格,支持模糊匹配和多條件匹配,即該類型Exchange使用Routing Key模式匹配和字符串比較的方式將消息路由至綁定的Queue中。
fanout:該類型的路由規(guī)則非常簡單,會把所有發(fā)送到該Exchange的消息路由到所有與它綁定的Queue中,相當(dāng)于廣播功能。
headers:該類型與direct類型相似。Headers Exchange使用Headers屬性代替Routing Key進(jìn)行路由匹配,在綁定Headers Exchange和Queue時,設(shè)置綁定屬性的鍵值對;在向Headers Exchange發(fā)送消息時,設(shè)置消息的Headers屬性鍵值對,使用消息Headers屬性鍵值對和綁定屬性鍵值對比較的方式將消息路由至綁定的Queue。
x-delayed-message:通過聲明該類Exchange,您可以自定義消息的Header屬性x-delay來指定消息延時投遞的時間段,單位為毫秒。消息將在x-delay中定義的時間段后,根據(jù)路由規(guī)則被投遞到對應(yīng)的Queue。路由規(guī)則取決于x-delayed-type中指定的Exchange路由類型。
x-consistent-hash:x-consistent-hash Exchange支持將Routing Key或Header值進(jìn)行Hash計算,使用一致性哈希算法將消息路由到不同的Queue上。
x-delayed-type
當(dāng)Exchange類型為x-delayed-message時,需要配置此參數(shù),以指定Exchange的路由類型。
哈希取值
當(dāng)Exchange類型為x-consistent-hash時,需要配置此參數(shù),以指定Hash計算的輸入值為哪種類型。取值如下:
RoutingKey
Header 值:使用Header方式作為Hash計算輸入值時,您需要定義hash-header參數(shù)的取值。
hash-header
當(dāng)Exchange類型為x-consistent-hash且哈希取值為Header 值時,需要配置此參數(shù),作為指定Hash計算的輸入值。
Internal
是否為Internal類型,默認(rèn)值為否。取值:
是:內(nèi)建類型,用于Exchange和Exchange之間的綁定。
否:非內(nèi)建類型,用于Exchange和Queue之間的綁定。
3.創(chuàng)建Queue
Queue是指隊列,云消息隊列 RabbitMQ 版的消息都會被投入到一個或多個Queue中。
在該實例的左側(cè)導(dǎo)航欄,單擊Queue 列表。
在Queue 列表頁面,在當(dāng)前 Vhost右側(cè)的切換下拉列表中,選擇Vhost,單擊創(chuàng)建 Queue。
在創(chuàng)建 Queue面板,在Queue 名稱文本框輸入Queue的名稱,選擇是否為Auto Delete類型,單擊高級選項,設(shè)置Queue的參數(shù),然后單擊確定。
參數(shù)
描述
說明
Queue 名稱
Queue的名稱
只能包含字母、數(shù)字、短劃線(-)、下劃線(_)、半角句號(.)、井號(#)、正斜線(/)、at符號(@)。
長度限制在1~255字符。
創(chuàng)建后無法修改,只能刪除重建。
以amq.開頭的為保留字段,因此不能使用。例如:amq.test。
Auto Delete
最后一個Consumer取消訂閱后,Queue是否自動刪除。
true:在訂閱該Queue消息的最后一個Consumer取消訂閱該Queue的消息后,自動刪除該Queue。
false:在訂閱該Queue消息的最后一個Consumer取消訂閱該Queue的消息后,不自動刪除該Queue。
高級選項
Queue的參數(shù)設(shè)置,可用于設(shè)置死信Exchange、死信Routing Key和消息存活時間。
DeadLetterExchange:指定死信消息發(fā)送的目標(biāo)Exchange。
DeadLetterRoutingKey:指定死信消息的Routing Key,即死信Exchange會將消息發(fā)送至匹配該死信Routing Key所對應(yīng)的Queue。
MessageTTL:消息存活時間,單位毫秒(ms)。在指定時間內(nèi)未被成功消費(fèi)的消息會變成死信消息,該消息將會被發(fā)送到死信Exchange。更多信息,請參見消息存活時間。
4.創(chuàng)建綁定關(guān)系
在Queue 列表頁面,選擇指定Queue,在其操作列單擊詳情。
在Queue 詳情頁面單擊被綁定信息頁簽,單擊添加被綁定。
在添加被綁定面板,選擇源Exchange,在Routing Key文本框輸入Routing Key,然后單擊確定。
說明若被綁定的Exchange的類型為x-consistent-hash時,Routing Key表示綁定的Queue的權(quán)重,只能設(shè)置為整數(shù),取值范圍為[1~20]。
5.創(chuàng)建用戶名密碼
在該實例的左側(cè)導(dǎo)航欄,單擊靜態(tài)用戶名密碼。
在靜態(tài)用戶名密碼頁面,單擊創(chuàng)建用戶名密碼。
在創(chuàng)建用戶名密碼面板,輸入AccessKey ID和AccessKey Secret,然后單擊確定。
說明AccessKey ID和AccessKey Secret需要在阿里云RAM控制臺獲取,具體獲取方式,請參見創(chuàng)建AccessKey。
靜態(tài)用戶名密碼頁面,顯示創(chuàng)建的靜態(tài)用戶名與密碼,密碼處于隱藏狀態(tài)。
在創(chuàng)建的靜態(tài)用戶名密碼的密碼列,單擊顯示密碼,可查看用戶名的密碼。
后續(xù)步驟
相關(guān)文檔
除了控制臺,您還可以通過云消息隊列 RabbitMQ 版的API創(chuàng)建相關(guān)資源。
CreateInstance:創(chuàng)建云消息隊列 RabbitMQ 版實例
ListInstances:獲取實例的接入點(diǎn)
CreateVirtualHost:創(chuàng)建Vhost
CreateExchange:創(chuàng)建Exchange
CreateQueue:創(chuàng)建Queue
CreateBinding:創(chuàng)建綁定關(guān)系
CreateAccount:創(chuàng)建實例的靜態(tài)用戶名密碼