rabbitmq 應用場景

2021-07-06 02:45:07 字數 565 閱讀 8786

rabbitmq,或者說amqp解決了什麼問題,或者說它的應用場景是什麼?

對於乙個大型的軟體系統來說,它會有很多的元件或者說模組或者說子系統或者(subsystem or component or submodule)。那麼這些模組的如何通訊?這和傳統的ipc有很大的區別。傳統的ipc很多都是在單一系統上的,模組耦合性很大,不適合擴充套件(scalability);如果使用socket那麼不同的模組的確可以部署到不同的機器上,但是還是有很多問題需要解決。比如:

1)資訊的傳送者和接收者如何維持這個連線,如果一方的連線中斷,這期間的資料如何方式丟失?

2)如何降低傳送者和接收者的耦合度?

3)如何讓priority高的接收者先接到資料?

4)如何做到load balance?有效均衡接收者的負載?

5)如何有效的將資料傳送到相關的接收者?也就是說將接收者subscribe 不同的資料,如何做有效的filter。

6)如何做到可擴充套件,甚至將這個通訊模組發到cluster上?

7)如何保證接收者接收到了完整,正確的資料?

amdq協議解決了以上的問題,而rabbitmq實現了amqp

RabbitMQ應用場景

在大多數應用中,可通過訊息服務中介軟體來提公升系統非同步通訊,擴充套件解耦能力。比如,非同步處理 以使用者註冊為例 首先將使用者的註冊資訊寫入資料庫,然後給使用者傳送郵件,並且發一封簡訊。第一種方法 按照以前的同步方式,寫入資料庫調發郵件方法,發完郵件調發簡訊方法,每個需要50毫秒,算上寫入資料庫,...

RabbitMQ的應用場景

1.非同步處理 使用者註冊後,需要發註冊郵件和註冊簡訊,傳統的方式 序列和並行。序列 使用者註冊資訊寫入資料庫 傳送郵件 傳送簡訊 註冊成功,使用者使用 並行 使用者註冊資訊寫入資料庫 傳送郵件 傳送簡訊 註冊成功,使用者使用 因為郵件和簡訊並不是註冊所必需的,即使不接收郵件和簡訊,使用者也可以進行...

RabbitMQ的幾種應用場景

1.a關注b,b傳送一條動態,a要能收到推送,或者要朋友圈有顯示 2.併發寫資料庫的時候 可以先放mq佇列,然後再寫資料 比如遊戲 同時使用多執行緒 3.其實很多地方都可以用訊息佇列,只要你想用基本都能用上,就看需不需要,如果是指普通的小使用者量,只需要直接請乙個新的執行緒跑就可以了 4.還有就是日...