欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

rabbitmq學習筆記

一、消息確認機制

成都創(chuàng)新互聯(lián)公司成立于2013年,先為彰武等服務建站,彰武等地企業(yè),進行企業(yè)商務咨詢服務。為彰武企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

rabbitmq在發(fā)送消息后立即從內(nèi)存中刪除消息,因此如果消費者處理消息耗時較長,在處理過程中消費者被kill,則處理中的消息、以及其他發(fā)往該消費者的消息都將丟失。

為了保證消息不丟失,rabbitmq支持消息確認機制,消費者可以發(fā)送ack告訴rabbitm指定消息已經(jīng)收到并處理,因此rabbitmq可以刪除該消息。

如果消費者死掉(channel關閉、connection關閉、或者TCP connection丟失),導致rabbitmq沒有收到ack,rabbitmq將把消息重入隊列。

不存在消息超時,這意味著處理一個消息非常長的時間也是ok的。

消息確認機制默認是開啟的,通過在channel.basic_consume中設置no_ack=True關閉。

注意消費者在處理消息后,不要忘記調(diào)用channel.basic_ack進行消息確認,否則rabbitmq將不斷消耗內(nèi)存把消息重入隊列。

二、隊列/消息持久化

為了防止rabbitmq服務終止導致隊列和消息丟失,需要將隊列和消息標記為持久化的:

  1. 確保rabbitmq永遠不丟失隊列,需要將隊列 聲明為持久化的:

  2. channel.queue_declare(queue='task_queue', durable=True)
  3. 將消息聲明為持久化的:

  4. channel.basic_publish(exchange='',
                          routing_key="task_queue",
                          body=message,
                          properties=pika.BasicProperties(
                             delivery_mode = 2, # make message persistent
                          ))

注意:盡管已經(jīng)很健壯了,但是仍然無法完全保證消息不會丟失,例如rabbitmq接收消息但是還沒有保存到硬盤的情況。

三、exchange

簡單的說,exchange的一端接收消息,另一端把消息放進隊列。

在rabbitmq中生產(chǎn)者不會將請求直接發(fā)送給消費者,生產(chǎn)值只會把消息發(fā)給exchange,exchange收到消息后需要知道怎么做:添加到特定隊列、添加到多個隊列、還是丟棄。

exchange的類型包括direct,topic,headers,fanout

四、綁定

exchange和queue之間的聯(lián)系被稱為綁定(binding),可以簡單的看:隊列對于特定exchange上的消息感興趣

channel.queue_bind(exchange='logs',
                   queue=result.method.queue)

此時'logs' exchange將添加消息到指定queue

綁定可以使用一個額外的routing_key參數(shù),例如:

channel.queue_bind(exchange=exchange_name,
                   queue=queue_name,
                   routing_key='black')

對于fanout類型的exchange來說,routing_key參數(shù)是被忽略的

五、topic exchange

發(fā)往topic exchange的消息不能攜帶任意的routing_key,必須是以點隔開的一串字符,最大255個字節(jié)

binding key也必須是相同的形式,注意binding key有兩個重要的特殊情況:

* 可以替代一個單詞

#可以替代零個或多個單詞

例如,如果binding key是*.orange.*,則可以匹配所有<one word>.orange.<one word>的key,但是如果key不是*.*.*的形式,例如orange,或者quick.orange.male.rabbit,則消息將被丟棄。

如果binding key是lazy.#,則類似于帶有l(wèi)azy.orange.male.rabbit的key的消息可以匹配。

topic exchange非常強大,通過匹配routing_key可以表現(xiàn)的像存在多個exchange

六、RPC

為了接收響應,客戶端需要在發(fā)送請求時附加發(fā)送回調(diào)隊列地址:

result = channel.queue_declare(exclusive=True)
callback_queue = result.method.queue

channel.basic_publish(exchange='',
                      routing_key='rpc_queue',
                      properties=pika.BasicProperties(
                            reply_to = callback_queue,
                            ),
                      body=request)
                      
# ... and some code to read a response message from the callback_queue ...

名稱欄目:rabbitmq學習筆記
當前鏈接:http://aaarwkj.com/article18/gdsddp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、動態(tài)網(wǎng)站、關鍵詞優(yōu)化、品牌網(wǎng)站設計、企業(yè)建站、網(wǎng)站設計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設
日韩女同一区二区三区在线观看| 小黄片免费在线播放观看| 天堂av在线免费观看| 福利福利视频一区二区| 日韩亚洲国产欧美在线观看| 亚洲欧美日韩精品成人| 五月婷婷丁香花综合网| 亚洲激情视频在线视频| 五月开心婷婷中文字幕| 久久视热频这里只有精品| 91精品国产综合久久男男| 国内精品自拍亚洲视频| 小草少妇视频免费看视频| 成人作爱视频免费播放| 日韩成人三级一区二区| 久久精品亚洲熟女av蜜臀| 亚洲乱码日韩电影网站| 日韩国产推荐一区二区| 日本人妻三级精品久久| 亚洲av第一区国产精品| 成熟性性生活免费视频| 美女在线观看av少妇| 成人深夜福利视频在线| 中文字幕日本人妻少妇| 亚洲欧美日韩有码一区| 播放欧美日韩特黄大片| 亚洲中文字幕av天堂久久| 国产欧美日韩一区二区三区四区| 国产成人精品久久久亚洲| 日本99精品视频10| 午夜丁香婷婷爽少妇av| 人人妻人人澡人人爽人人精品| 禁止18黄色免费网站| 日本一区二区三区不卡在线| 可以免费看的日韩黄色| 亚洲精品国产av成人网| 国产精品久久亚洲一区二区| 岛国大片一区二区三区| 四虎精品视频在线免费| 日本精品免费专区在线观看| 亚洲最大成人综合福利网|