1. 程式人生 > 其它 >訊息佇列概述

訊息佇列概述

1.1 開發中訊息佇列應用場景:

1、任務非同步處理

將不需要同步處理的並且耗時長的操作由訊息佇列通知訊息接收方進行非同步處理。提高了應用程式的響應時間。

2、應用程式解耦合

MQ相當於一箇中介,生產方通過MQ與消費方互動,它將應用程式進行解耦合。

1.2 訊息佇列優點:

1.訊息佇列是應用程式之間的通訊方法;

2.在專案中,可將一些無需即時返回且耗時的操作提取出來,進行非同步處理,而這種非同步處理的方式大大的節省了伺服器的請求響應時間,從而提高系統吞吐量

3.可以實現程式之間的解耦合。

1.3 實現MQ的2種方式:

MQ是訊息通訊的模型;實現MQ的大致有兩種主流方式:AMQP,JMS

AMQP:

AMQP是一種協議,更準確的說是一種binary wire-level protocol(連結協議)。這是其和JMS的本質差別,AMQP不從API層進行限定,而是直接定義網路交換的資料格式。

JMS:

JMS即Java訊息服務(JavaMessage Service)應用程式介面,是一個Java平臺中關於面向訊息中介軟體(MOM)的API,用於在兩個應用程式之間,或分散式系統中傳送訊息,進行非同步通訊。

AMQP JMS 區別

  • JMS是定義了統一的介面,來對訊息操作進行統一;AMQP是通過規定協議來統一資料互動的格式

  • JMS限定了必須使用Java語言;AMQP只是協議,不規定實現方式,因此是跨語言的。

  • JMS規定了兩種訊息模式;而AMQP的訊息模式更加豐富

1.4 訊息佇列常見產品:

activeMQ,zeroMQ,RabbitMQ,RocketMQ,kafka