kafka訊息中介軟體的最大特點?靜靜PiZriQ2021-10-30 18:21:22

特點:

一、訊息中介軟體

官方解釋:訊息中介軟體利用高效可靠的訊息傳遞機制進行平臺無關的資料交流,並基於資料通訊來進行分散式系統的整合。

透過提供訊息傳遞和訊息排隊模型,它可以在分散式環境下擴充套件程序間的通訊。

說白了就是在分散式中進行訊息的收發和處理的,但是為什麼用,怎麼用,用來解決什麼問題

二、使用場景

簡易架構:一般訊息中介軟體有三大模組,producer(訊息生產),broker或者叫Queue(訊息存放),consumer(訊息消費)

一般情況下producer和consumer在兩個不同系統A和B,A系統生產訊息,並把訊息存放到broker中,B系統消費存放在Broker上的訊息資訊,乍一看跟系統之間RPC呼叫沒什麼區別,都是為了系統間通訊,相對於RPC呼叫優勢在哪裡

1。非同步處理:貌似RPC呼叫也可以實現非同步呼叫的功能,但是RPC呼叫的非同步處理跟訊息中介軟體還是有很大的區別的rpc非同步呼叫後,當前系統對是否通訊成功並無感知(是否通訊成功也可以理解為訊息是否已達)。

也許因為網路原因,非同步的訊息並沒有傳送到其他系統;針對這一點訊息中介軟體對訊息做了改善,比如說持久化,接下來會以kafka講解支援訊息重試

2。流量控制:系統的流量受到時間,季節,天氣,節日等因素的影響,流量並不是均勻的,比如說11。11,流量會很大,如果所有流量全都直接打到底層系統,甚至到資料庫,那麼系統很有可能會掛掉,這時候訊息中介軟體的作用就體現出來了所有訊息先存到broker上,consumer根據自己的消費能力處理broker的訊息

3。服務解耦:電商專案中很多系統一般都會訂單感興趣,訂單建立,完成,取消或退回,如果沒有訊息中介軟體,那麼每個訂單的建立都要通知到對訂單建立感興趣的系統,這樣各個系統都會耦合到一塊,增加了系統的複雜度。

但是如果透過訊息中介軟體實現,訂單建立後訊息儲存到訊息中介軟體,對訂單感興趣的系統訂閱這個訊息,然後處理自己系統的邏輯很大程度上降低了系統的耦合度