一:安裝,專業術語,簡單佇列,工作佇列,釋出/訂閱佇列,路由佇列,主題佇列,RPC佇列,事務,確認模式,SpringAMQP

二:什麼是MQ?

MQ就是訊息佇列,是一種程序間通訊或同一程序的不同執行緒間的通訊方式。訊息佇列提供了非同步的通訊協議。訊息的傳送者和接受者不需要同時與訊息佇列互交,訊息會儲存在佇列中,直到接受者取回它。

當大量資料訪問資料庫的時候,我們可以使用RabbitMQ來進行流量削峰。如圖:

當前主流的訊息佇列:RabbitMQ(速度還可以),RocketMQ(阿里的有收費),ActiveMQ(效能差),Kafka(可能資料丟失)

特點:

MQ是消費者--生產者模型的一個典型的代表,一端往訊息佇列中不斷寫入訊息,而另一端則可以讀取或者訂閱佇列中的訊息。MQ和JMS類似,但不同的是JMS是SUN JAVA訊息中介軟體服務的一個標準和API定義,而MQ則是遵循了AMQP協議的具體實現和產品。

    注意:
1.AMQP ,即Advanced Message Queuing Protocol,一個提供統一訊息服務的應用層標準高階訊息佇列協議,是應用層協議的一個開放標準,為面向訊息的中介軟體設計。基於此協議的客戶端與訊息中介軟體可傳遞訊息,並不受客戶端/中介軟體不同產品,不同的開發語言等條件的限制。
2.JMS ,Java訊息服務(Java Message Service)應用程式介面,是一個Java平臺中關於面向訊息中介軟體的API,用於在兩個應用程式之間,或分散式系統中傳送訊息,進行非同步通訊。 Java訊息服務是一個與具體平臺無關的API,絕大多數MOM提供商都對JMS提供支援。常見的訊息佇列,大部分都實現了JMS API,如ActiveMQ , Redis 以及 RabbitMQ 等。