目錄
設定說明
使用命令列查看佇列清單
定義佇列
#可靠點
channel.basicQos(prefetchCount);
登入後複製
" >
channel.basicQos(prefetchCount);
登入後複製
首頁 Java java教程 RabbitMQ安裝(windows)實例教學

RabbitMQ安裝(windows)實例教學

Jul 18, 2017 pm 02:44 PM
rabbitmq 學習 筆記

管理後台

rabbitmq自帶管理後台,安裝後需要設定開啟
進入rabbitmq安裝目錄中的sbin目錄執行
rabbitmq-plugins enable rabbitmq_management
重啟rabbitmq服務生效
開啟http://localhost:15672/即可看到管理後台
使用者名稱密碼皆為guest

設定說明


使用命令列查看佇列清單

sbin>rabbitmqctl list_queues  
sbin>rabbitmqctl list_queues name messages_ready messages_unacknowledged
登入後複製

使用命令列查看exchange清單

sbin>rabbitmqctl list_exchanges
登入後複製

定義佇列

RabbitMQ 不允許你用不同的參數重新定義一個已經存在的隊列。

RabbitMQ doesn't allow you to redefine an existing queue with different parameters and will return an error to any program that tries to do that

#可靠點

要確保訊息不遺失,需要設定訊息持久化,同時佇列也必須為耐久的。

但這樣做仍然不是100%可靠,因為如果RabbitMQ 在接收訊息後、完成持久化之前崩潰,那麼就會導致訊息遺失。

重複處理

考慮如下場景(前提:佇列、訊息都是持久的):

  1. 消費者接收了一個訊息msgA,處理了一半,沒有完成、沒有發起ack確認;

  2. 此時RabbitMQ 崩潰了;

  3. 消費者完成了訊息msgA的處理;

  4. 當RabbitMQ 重啟後,發現msgA未被處理,於是msgA再次被傳送給消費者。

這種場景下,訊息msgA就會被處理兩次,所以消費者端應該要有防止重複處理的機制。

ACK

ACK確認,只是告訴RabbitMQ 消費者已經完成了對訊息的處理,而不是說邏輯上處理成功,即使是由於業務處理失敗了,也要進行ACK確認。因為一般而言業務上的原因導致失敗的話,重試是不解決問題的。只有網路中斷、機器斷電等故障所引起的失敗才有重試的必要。

防止業務負載集中到某個消費者

channel.basicQos(prefetchCount);
登入後複製

設定


prefetchCount=1,告訴RabbitMQ 每次只給一個消費者分配一個訊息,直到上一個分配給該消費者的訊息被確認處理完成。這樣一來,訊息就會根據實際處理情況,每次都分配給空閒的消費者。

關於預設Exchange

預設Exchange隱含地綁定到每個隊列,路由key為隊列名。不能對其進行顯式綁定或解綁。並且它是不可刪除的。

The default exchange is implicitly bound to every queue, with a routing key equal to the queue name. It is not possible to explicitly bind to, or unbind from the default exchange. It desocannotexchange. .

訊息傳遞的基本程序

發布者發布一個訊息

-->exchange接收訊息(如果發布者沒有指定特定的Exchange則使用預設Exchange) ,並根據exchange的類型,按照一定的路由規則,把訊息路由給每一個符合路由規則的隊列(如果沒有匹配的隊列,則訊息被丟棄)
-->隊列將訊息發送給訂閱該佇列的某一個消費者(如果沒有消費者則訊息保留在佇列中,知道有消費者消費該訊息)

Topic Exchange的通配符

星號符合一個字(注意,不是一個字母)

* (star) can substitute for exactly one word.井號符合任一單字

# ( hash) can substitute for zero or more words.

AMQP協定mandatory和immediate標誌位的作用

mandatory和immediate是AMQP協定中basic.pulish方法中的兩個標誌位,它們都有當訊息傳遞過程中不可達目的地時將訊息傳回給生產者的功能。具體區別在於:

1. mandatory標誌位元

當mandatory標誌位元設定為true時,如果exchange根據自身類型和訊息routeKey無法找到一個符合條件的queue,那麼會呼叫basic .return方法將訊息回饋給生產者;當mandatory設為false時,出現上述情形broker會直接將訊息丟掉。

2. immediate標誌位元

當immediate標誌位元設為true時,如果exchange在將訊息route到queue(s)時發現對應的queue上沒有消費者,那麼這條訊息不會放入隊列中。當與訊息routeKey關聯的所有queue(一個或多個)都沒有消費者時,該訊息會透過basic.return方法返還給生產者。

以上是RabbitMQ安裝(windows)實例教學的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1324
25
PHP教程
1272
29
C# 教程
1251
24
小紅書筆記怎麼刪除 小紅書筆記怎麼刪除 Mar 21, 2024 pm 08:12 PM

小紅書筆記怎麼刪除?在小紅書APP中是可以編輯筆記的,多數的用戶不知道小紅書筆記如何的刪除,接下來就是小編為用戶帶來的小紅書筆記刪除方法圖文教程,有興趣的用戶快來一起看看吧!小紅書使用教學小紅書筆記怎麼刪除1、先打開小紅書APP進入到主頁面,選擇右下角【我】進入到專區;2、之後在我的專區,點擊下圖所示的筆記頁面,選擇要刪除的筆記;3、進入到筆記頁面,右上角【三個點】;4、最後下方會展開功能欄,點選【刪除】即可完成。

學會徹底卸載pip,使用Python更有效率 學會徹底卸載pip,使用Python更有效率 Jan 16, 2024 am 09:01 AM

不再需要pip?快來學習如何有效卸載pip!引言:pip是Python的套件管理工具之一,它可以方便地安裝、升級和卸載Python套件。然而,有時候我們可能需要卸載pip,可能是因為我們希望使用其他的套件管理工具,或者因為我們需要完全清除Python環境。本文將介紹如何有效地卸載pip,並提供具體的程式碼範例。一、卸載pip的方法下面將介紹兩種常見的卸載pip的方法

小紅書發布過的筆記不見了怎麼辦?它剛發的筆記搜不到的原因是什麼? 小紅書發布過的筆記不見了怎麼辦?它剛發的筆記搜不到的原因是什麼? Mar 21, 2024 pm 09:30 PM

作為一名小紅書的用戶,我們都曾經遇到過發布過的筆記突然不見了的情況,這無疑讓人感到困惑和擔憂。在這種情況下,我們該怎麼辦呢?本文將圍繞著「小紅書發布過的筆記不見了怎麼辦」這個主題,為你詳細解答。一、小紅書發布過的筆記不見了怎麼辦?首先,不要驚慌。如果你發現筆記不見了,保持冷靜是關鍵,不要慌張。這可能是由於平台系統故障或操作失誤引起的。檢查發布記錄很簡單。只要打開小紅書App,點擊“我”→“發布”→“所有發布”,就可以查看自己的發布記錄。在這裡,你可以輕鬆找到之前發布的筆記。 3.重新發布。如果找到了之

深入研究matplotlib的色彩映射表 深入研究matplotlib的色彩映射表 Jan 09, 2024 pm 03:51 PM

深入學習matplotlib顏色表,需要具體程式碼範例一、引言matplotlib是一個功能強大的Python繪圖庫,它提供了豐富的繪圖函數和工具,可以用於創建各種類型的圖表。而顏色表(colormap)是matplotlib中一個重要的概念,它決定了圖表的配色。深入學習matplotlib色表,將幫助我們更好地掌握matplotlib的繪圖功能,使繪

小紅書怎麼在筆記中加入商品連結 小紅書在筆記中加入商品連結教學 小紅書怎麼在筆記中加入商品連結 小紅書在筆記中加入商品連結教學 Mar 12, 2024 am 10:40 AM

小紅書怎麼在筆記中添加商品連結?在小紅書這款app中用戶不僅可以瀏覽各種內容還可以進行購物,所以這款app中關於購物推薦、好物分享的內容是非常多的,如果小夥伴在這款app也是一個達人的話,也可以分享一些購物經驗,找到商家進行合作,在筆記中添加連結之類的,很多人都願意使用這款app購物,因為不僅方便,而且有很多達人會進行一些推薦,可以一邊瀏覽有趣內容,一邊看看有沒有適合自己的衣服商品。一起看看如何在筆記中添加商品連結吧!小紅書筆記添加商品連結方法  在手機桌面上開啟app。  在app首頁點擊

Pygame入門指南:全面安裝與設定教學課程 Pygame入門指南:全面安裝與設定教學課程 Feb 19, 2024 pm 10:10 PM

從零開始學習Pygame:完整的安裝和配置教程,需要具體程式碼範例引言:Pygame是一個使用Python程式語言開發的開源遊戲開發庫,它提供了豐富的功能和工具,使得開發者可以輕鬆創建各種類型的遊戲。本文將帶您從零開始學習Pygame,並提供完整的安裝和配置教程,以及具體的程式碼範例,讓您快速入門。第一部分:安裝Python和Pygame首先,確保您的電腦上已

一起學習word根號輸入方法 一起學習word根號輸入方法 Mar 19, 2024 pm 08:52 PM

在word編輯文字內容時,有時會需要輸入公式符號。有的小夥子們不知道在word根號輸入的方法,小面就讓小編跟小夥伴們一起分享下word根號輸入的方法教學。希望對小夥伴們有幫助。首先,開啟電腦上的Word軟體,然後開啟要編輯的文件,並將遊標移到需要插入根號的位置,參考下方的圖片範例。 2.選擇【插入】,再選擇符號裡的【公式】。如下方圖片紅色圈的部分內容所示:3.接著選擇下方的【插入新公式】。如下方圖片紅色圈的部分內容所示:4.選擇【根式】,再選擇適當的根號。如下方圖片紅色圈的部分內容所示:

揭秘C語言的吸引力: 發掘程式設計師的潛質 揭秘C語言的吸引力: 發掘程式設計師的潛質 Feb 24, 2024 pm 11:21 PM

學習C語言的魅力:解鎖程式設計師的潛力隨著科技的不斷發展,電腦程式設計已經成為了一個備受關注的領域。在眾多程式語言中,C語言一直以來都備受程式設計師的喜愛。它的簡單、高效以及廣泛應用的特點,使得學習C語言成為了許多人進入程式設計領域的第一步。本文將討論學習C語言的魅力,以及如何透過學習C語言來解鎖程式設計師的潛力。首先,學習C語言的魅力在於其簡潔性。相較於其他程式語言而言,C語

See all articles