第1章 RabbitMQ概述
第2章 RabbitMQ安裝
第3章 RabbitMQ消息發送和接收
第4章 Spring集成RabbitMQ

即时比分网球探:RabbitMQ概述

 

 

什么是消息隊列

 

消息(Message)是指在應用間傳送的數據。消息可以非常簡單,比如只包含文本字符串,也可以更復雜,可能包含嵌入對象。

 

消息隊列(Message Queue)是一種應用間的通信方式,消息發送后可以立即返回,由消息系統來確保消息的可靠傳遞。消息發布者只管把消息發布到 MQ 中而不用管誰來取,消息使用者只管從 MQ 中取消息而不管是誰發布的。這樣發布者和使用者都不用知道對方的存在。

 

 

為什么要使用消息隊列

 

從上面的描述中可以看出消息隊列是一種應用間的異步協作機制,那什么時候需要使用 MQ 呢?

 

以常見的訂單系統為例,用戶點擊【下單】按鈕之后的業務邏輯可能包括:扣減庫存、生成相應單據、發紅包、發短信通知。在業務發展初期這些邏輯可能放在一起同步執行,隨著業務的發展訂單量增長,需要提升系統服務的性能,這時可以將一些不需要立即生效的操作拆分出來異步執行,比如發放紅包、發短信通知等。這種場景下就可以用 MQ ,在下單的主流程(比如扣減庫存、生成相應單據)完成之后發送一條消息到 MQ 讓主流程快速完結,而由另外的單獨線程拉取MQ的消息(或者由 MQ 推送消息),當發現 MQ 中有發紅包或發短信之類的消息時,執行相應的業務邏輯。

 

以上是用于業務解耦的情況,其它常見場景包括最終一致性、廣播、錯峰流控等等。

 

 

RabbitMQ特點

 

RabbitMQ 是一個由 Erlang 語言開發的 AMQP 的開源實現。

 

AMQP :Advanced Message Queue,高級消息隊列協議。它是應用層協議的一個開放標準,為面向消息的中間件設計,基于此協議的客戶端與消息中間件可傳遞消息,并不受產品、開發語言等條件的限制。

 

RabbitMQ 最初起源于金融系統,用于在分布式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面表現不俗。具體特點包括:

 

1、可靠性(Reliability)

 

RabbitMQ 使用一些機制來保證可靠性,如持久化、傳輸確認、發布確認。

 

2、靈活的路由(Flexible Routing)

 

在消息進入隊列之前,通過 Exchange 來路由消息的。對于典型的路由功能,RabbitMQ 已經提供了一些內置的 Exchange 來實現。針對更復雜的路由功能,可以將多個 Exchange 綁定在一起,也通過插件機制實現自己的 Exchange 。

 

3、 消息集群(Clustering)

 

多個 RabbitMQ 服務器可以組成一個集群,形成一個邏輯 Broker 。

 

4、 高可用(Highly Available Queues)

 

隊列可以在集群中的機器上進行鏡像,使得在部分節點出問題的情況下隊列仍然可用。

 

5、多種協議(Multi-protocol)

 

RabbitMQ 支持多種消息隊列協議,比如 STOMP、MQTT 等等。

 

6、多語言客戶端(Many Clients)

 

RabbitMQ 幾乎支持所有常用語言,比如 Java、.NET、Ruby 等等。

 

7、 管理界面(Management UI)

 

RabbitMQ 提供了一個易用的用戶界面,使得用戶可以監控和管理消息 Broker 的許多方面。

 

8、 跟蹤機制(Tracing)

 

如果消息異常,RabbitMQ 提供了消息跟蹤機制,使用者可以找出發生了什么。

 

全部教程
{ganrao} 姚记棋牌官网下载 血流成河十种胡牌牌型 网上兼职赚钱app 哈灵麻将安卓版下载 中国福利彩票25选5 血流麻将怎么胡的多 网上赚钱好项目 吉林科乐麻将群 最强六肖公式平特计算网 单机麻将四人不联网 韩国28是不是官方开奖 内部精准一肖1码 北京麻将上楼规则 北京赛车pk10平台技巧改单 三十三码的鞋内长多少 苹果怎么安装不了微乐