国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

rabbitmq常用的三種exchange類型和python庫(kù)pika接入rabbitmq

YancyYe / 3610人閱讀

摘要:可以簡(jiǎn)單方便的通過配置,并可以向和中發(fā)消息來驗(yàn)證自己的理解。然后通過發(fā)送消息,可以隨便填寫,因?yàn)槭穷愋偷模黄鹱饔谩_@種情況下,隊(duì)列之間是互斥關(guān)系,一個(gè)消息最多只能進(jìn)入一個(gè)隊(duì)列。

現(xiàn)在很多開源軟件都提供了對(duì)應(yīng)的web管理界面,rabbitmq也不例外,rabbitmq提供了一個(gè)web插件。當(dāng)rabbit-server啟動(dòng)之后,即在瀏覽器中通過http://localhost:15672/地址訪問頁面,提供一個(gè)比命令rabbitmqctl更友好的學(xué)習(xí)rabbitmq的方式。可以簡(jiǎn)單方便的通過配置rabbitmq,并可以向exchange和queue中發(fā)消息來驗(yàn)證自己的理解。如下圖:

Rabbitmq 常用三種exchange類型: Fanout exchange:

這是處理邏輯最簡(jiǎn)單的exchange類型,實(shí)際上它沒有任何邏輯,它把進(jìn)入該exchange的消息全部轉(zhuǎn)發(fā)給每一個(gè)綁定的隊(duì)列中,如果這個(gè)exchange沒有隊(duì)列與之綁定,消息會(huì)被丟棄。

測(cè)試:
新建一個(gè)fanout類型的exchange,名稱叫fanoutTest,并綁定兩個(gè)routing key是hello.world的隊(duì)列,如下圖所示。

然后通過exchange發(fā)送消息,routing key可以隨便填寫,因?yàn)槭莊anout類型的exchange,routing key不起作用。點(diǎn)擊publish按鈕,即可發(fā)送消息。

兩個(gè)消息隊(duì)列都接收到了對(duì)應(yīng)的消息,如下圖所示,(消費(fèi)隊(duì)列的時(shí)候有個(gè)Requeue的選項(xiàng),如果是“Yes”,消息會(huì)再入隊(duì),如果是“NO”,則消息被消費(fèi)之后隊(duì)列中就不會(huì)存在這個(gè)消息了)

Direct exchange

這種類型的交換機(jī)Fancout 類型的交換機(jī)智能一些,它會(huì)根據(jù)routing key來決定把消息具體扔到哪個(gè)消息隊(duì)列中。通過exchange發(fā)消息的時(shí)候會(huì)指定一個(gè)routing key,只有當(dāng)routing key和與隊(duì)列綁定的routing key一樣的時(shí)候,消息才對(duì)發(fā)送到對(duì)應(yīng)的消息隊(duì)列。即,如果與某個(gè)隊(duì)列綁定的routing key叫hello.world,則通過exchange發(fā)送的routing key必須也是hello.world,該隊(duì)列才能接收到消息(可按上述步驟進(jìn)行驗(yàn)證)。這種情況下,隊(duì)列之間是互斥關(guān)系,一個(gè)消息最多只能進(jìn)入一個(gè)隊(duì)列。

Topic exchange

Topic exchange是最靈活的exchange,它會(huì)把exchange的routing key與綁定隊(duì)列的routing key進(jìn)行模式匹配。Routing key中可以包含 和#兩種符號(hào),#號(hào)可以用來匹配一個(gè)或者多個(gè)單詞,用來匹配正好一個(gè)單詞。官方的下圖很好地說明了這個(gè)問題,讀者最好自己動(dòng)手驗(yàn)證一下。

Python腳本操作Rabbitmq

python有多個(gè)可以接入rabbitmq的庫(kù),pika是官方推薦的一個(gè)。我在公司批量創(chuàng)建消息隊(duì)列的需求,于是寫了一個(gè)python批量創(chuàng)建消息隊(duì)列的腳本。
首先安裝pika:
sudo pip install pika==0.10.0

請(qǐng)輸入代碼

__author__ =?"tianbing"
?
import?os
import?sys
import?pika
?
?
def createVerifyCardQueues():
????credentials = pika.PlainCredentials("your user",?"your password")
????connection = pika.BlockingConnection(pika.ConnectionParameters("127.0.0.1",5672,"/",credentials))
????channel = connection.channel()
?
????name_prefix =?"merchant.verifycard.async"
????exchange_name =?"paybiz.merchant.exchange"
????channel.queue_declare()
????start=10
????end =?26
????for?biz_type in range(start, end):
????????queue_name = name_prefix + str(biz_type)
????????channel.queue_declare(queue_name,False,True)
????????channel.queue_bind(queue_name,exchange_name,queue_name)
?
if?__name__ ==?"__main__":
????createVerifyCardQueues()

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/37627.html

相關(guān)文章

  • rabbitmq中文教程python版 - 發(fā)布 / 訂閱

    摘要:交易所在本教程的前幾部分中,我們發(fā)送消息并從隊(duì)列中接收消息。消費(fèi)者是接收消息的用戶的應(yīng)用程序。中的消息傳遞模型的核心思想是生產(chǎn)者永遠(yuǎn)不會(huì)將任何消息直接發(fā)送到隊(duì)列中。交換和隊(duì)列之間的關(guān)系稱為綁定。 源碼:https://github.com/ltoddy/rabbitmq-tutorial 發(fā)布 / 訂閱 (using the Pika Python client) 本章節(jié)教程重點(diǎn)介紹的...

    alphahans 評(píng)論0 收藏0
  • RabbitMQ 快速入門 python

    摘要:為了預(yù)防消息丟失,提供了,即工作進(jìn)程在收到消息并處理后,發(fā)送給,告知這時(shí)候可以把該消息從隊(duì)列中刪除了。如果工作進(jìn)程掛掉了,沒有收到,那么會(huì)把該消息重新分發(fā)給其他工作進(jìn)程。之前在發(fā)布消息時(shí),的值為即使用。 HelloWorld 簡(jiǎn)介 RabbitMQ:接受消息再傳遞消息,可以視為一個(gè)郵局。發(fā)送者和接受者通過隊(duì)列來進(jìn)行交互,隊(duì)列的大小可以視為無限的,多個(gè)發(fā)送者可以發(fā)生給一個(gè)隊(duì)列,多個(gè)接收者...

    wenshi11019 評(píng)論0 收藏0
  • rabbitmq中文教程python版 - 介紹

    摘要:每當(dāng)我們收到一條消息,這個(gè)回調(diào)函數(shù)就被皮卡庫(kù)調(diào)用。接下來,我們需要告訴這個(gè)特定的回調(diào)函數(shù)應(yīng)該從我們的隊(duì)列接收消息為了讓這個(gè)命令成功,我們必須確保我們想要訂閱的隊(duì)列存在。生產(chǎn)者計(jì)劃將在每次運(yùn)行后停止歡呼我們能夠通過發(fā)送我們的第一條消息。 源碼:https://github.com/ltoddy/rabbitmq-tutorial 介紹 RabbitMQ是一個(gè)消息代理:它接受和轉(zhuǎn)發(fā)消息。你...

    yimo 評(píng)論0 收藏0
  • python開發(fā)-實(shí)現(xiàn)RabbitMQ的消息隊(duì)列

    摘要:最近在研究做消息隊(duì)列時(shí),順便看了一下做消息隊(duì)列的實(shí)現(xiàn)。遠(yuǎn)程連接時(shí)需要認(rèn)證實(shí)例化連接對(duì)象實(shí)例化鏈接參數(shù)對(duì)象創(chuàng)建新的通道模式向綁定到指定的中發(fā)送消息,消費(fèi)者從中取出數(shù)據(jù),類似于廣播模式發(fā)布訂閱模式。 最近在研究redis做消息隊(duì)列時(shí),順便看了一下RabbitMQ做消息隊(duì)列的實(shí)現(xiàn)。以下是總結(jié)的RabbitMQ中三種exchange模式的實(shí)現(xiàn),分別是fanout, direct和topic。 ...

    EastWoodYang 評(píng)論0 收藏0
  • rabbitmq中文教程python版 - Topics

    摘要:?jiǎn)卧~可以是任何東西,但通常它們指定了與該消息相關(guān)的一些功能。消息將使用由三個(gè)字兩個(gè)點(diǎn)組成的路由鍵發(fā)送。另一方面,只會(huì)進(jìn)入第一個(gè)隊(duì)列,而只會(huì)進(jìn)入第二個(gè)隊(duì)列。不匹配任何綁定,因此將被丟棄。代碼幾乎與前一個(gè)教程中的代碼相同。 源碼:https://github.com/ltoddy/rabbitmq-tutorial Topics (using the Pika Python client)...

    ernest.wang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<