rabbitMQ 從入門到放棄

2021-10-06 22:27:48 字數 2091 閱讀 5698

mq的作用

解耦冗餘 保證資料安全,不丟失資料

流量削峰

保證順序

非同步通訊

啟用mq控制台 cd sbin ,rabbitmq-plugins.bat enable rabbitmq_management

瀏覽http://localhost:15672/, 登入賬號/密碼 guest/guest

基本概念

linux 下的常用命令

rabbitmq-server 前台啟動服務

rabbitmq-server-detached 後台啟動服務

rabbitmqctl stop 停止服務

rabbitmqctl add_user 建立使用者

rabbitmqctl delete_user

rabbitmqctl change_password

rabbitmqctl ser_user_tags 授予使用者角色

10.rabbitmqctl set_permissions -p / user_admin 『.』』.』』.*』 設定允許訪問的vhost

6種模式

1. hello world :一對一,只是用於測試,學習mq

2. work queue :它會傳送一些耗時的任務給多個工作者(worker).在多個訊息的情況下,work queue 會將小安溪分派給不同的消費者,每個消費者都會接收到不同的訊息,並且可以根據處理訊息的速度來接收訊息的資料量,進而讓消費者程式發揮最大效能.work queue特別適合在集群環境中做非同步處理,能最大程度發揮每台機器的效能.

3. 發布/訂閱模式 發布/訂閱模式中,生產者不再直接與佇列繫結,而是將資料傳送至"交換機(exchange)" 交換機用於將資料按某種規則送入與之繫結的佇列,進而供消費者使用.發布/訂閱模式中,交換機將無差別的將所有訊息送入與之繫結的佇列,所有消費者拿到的訊息完全相同,交換機的型別被稱為fanout

4. 路由(routing)模式是在發布訂閱模式基礎上的變種.發布訂閱模式是無條件將所有訊息分發給所有消費者佇列.路由模式則是交換機根據routing key 有條件的將資料篩選後傳送給消費者佇列.路由模式下交換機的型別被稱為direct

5. topic 模式 是在routing模式的基礎上,提供了對routekey模糊匹配的功能,可以簡化程式的編寫.主題模式下,模糊匹配表示式規則為 * 匹配你單個關鍵字,#匹配所有關鍵字.主題模式下交換機的型別被稱為topic.

6. rpc 這個用的非常少,真的要用到rpc 也不會用rabbitmq的

訊息確認機制 confirm 與 return

confirm 代表生產者將訊息送到broker時產生的 狀態,後續出現兩種情況:

-ack 代表broker已經將資料接收.

-nack 代表broker拒收訊息.原因有很多,比如佇列已滿,限流,io異常…

return 代表訊息被broker正常接收(ack)後,但是broker沒有對應的佇列進行投遞時產生的狀態,訊息被退回給生產者.

注意:上面兩種狀態只代表生產者與broker之間的訊息投遞情況.與消費者是否接收/確認訊息無關.

rabbitmq 集群架構模式

主備模式(warren)

實現rabbitmq的高可用集群,一般在併發和資料量不高的情況下,這種模型非常的好 用且簡單

映象模式(mirror)

集群模式非常經典的及時mirro映象模式,保證100%資料不丟失,在實際工作中也是用得最多的.並且實現集群非常的簡單,一般網際網路大廠都會構建這種映象集群模式

遠端模式(shovel)

遠端模式可以實現雙活的一種模式,簡稱shovel模式,所謂shovel就是我們可以把訊息進行不同資料中心的複製工作,我們可以跨地域的讓兩個mq集群互聯

多活模式(federation)

這種模式也是實現異地資料複製的主流模式,因為shovel模式配置比較複雜,所以一般來說實現異地集群都是使用這種雙活或者多活模型來實現的.這種模型需要依賴rabitmq的federation外掛程式,可以實現持續的可靠的amqp資料通訊,多活模式在實際配置與應用非常的簡單

kmp從入門到放棄

標籤 kmp 擴充套件kmp 給你兩個字串,你需要回答,b串是否是a串的子串 a串是否包含b串 a aaaaaaaaaaaaaaaaaaaaaaaaaab b aaaaaaaab 最壞狀態 o mn 一般做法 for 列舉b在a串中的起始位置 for 向後比較ab是否相等 o n m 傳說中的kmp...

beego 從入門到放棄

beego 的專案基本都是通過 bee命令來建立的,所以在建立專案之前確保你已經安裝了 bee 工具和 beego。如果你還沒有安裝,那麼請查閱 beego 的安裝 和 bee 工具的安裝 現在一切就緒我們就可以開始建立專案了,開啟終端,進入 gopath src 所在的目錄 建立乙個專案名為201...

Flutter從入門到放棄

本篇主要記錄下flutter的學習路線。一 認識flutter 可以檢視這些文章 二 dart語言 1 認識dart語言 2 學習 從2018.02開始出現dart2,屬於強型別語言。介紹位址參考 三 開始flutter 網上也有很多部落格介紹了flutter怎麼安裝,但大多介紹不全,第一次安裝難免...