AMQP 0-9-1基本概念

RabbitMQ是個輕量級的消息隊列系統。實現了一個叫AMQP 0-9-1的協議。AMQP 0-9-1是Advanced Message Queuing Protocol的高級消息隊列協議的縮寫。

在AMQP裡面有幾個基本感念,Publisher發佈者,Exchange交換區,Queue隊列,Consumer消費者。

Publisher通常是指需要發送消息的應用,Publisher會將應用發到Exchange,當然這個Exchange是由RabbitMQ之類的實現著完成的,應用只要調用API就可以發送消息到Exchange,然後Exchange這邊會更具不同的條件將消息轉移到不同的隊列裡面。這個也是在RabbitMQ裡面實現的,當然這個轉移的條件是應用自己配置的。最後這個消息會從Queue發送到真正的使用者手裡,也就是Consumer,完成一個完整的消息傳遞。

開發人員編寫Publisher這端調用API發送消息,Consumer那一端調用API接受消息。

RabbitMQ帶有多種語言的封裝,方便不同語言的互操作。

在Consumer這一端有個內容值得提一下,那就是push和pull兩種模式。push模式就是Consumer先預先向RabbitMQ告知需要關心的隊列,這樣隊列系統就可以主動發送消息到Consumer應用。Pull模式則是有Consumer應用根據自己狀態和需要,主動查詢隊列系統裡面有沒有自己需要處理的消息。


分享到:


相關文章: