緩衝和削峰:上游資料時有突發流量,下游可能扛不住,或者下游沒有足夠多的機器來保證冗餘,kafka在中間可以起到乙個緩衝的作用,把訊息暫存在kafka中,下游服務就可以按照自己的節奏進行慢慢處理。
解耦和擴充套件性:專案開始的時候,並不能確定具體需求。訊息佇列可以作為乙個介面層,解耦重要的業務流程。只需要遵守約定,針對資料程式設計即可獲取擴充套件能力。
冗餘:可以採用一對多的方式,乙個生產者發布訊息,可以被多個訂閱topic的服務消費到,供多個毫無關聯的業務使用。
健壯性:訊息佇列可以堆積請求,所以消費端業務即使短時間死掉,也不會影響主要業務的正常進行。
非同步通訊:很多時候,使用者不想也不需要立即處理訊息。訊息佇列提供了非同步處理機制,允許使用者把乙個訊息放入佇列,但並不立即處理它。想向佇列中放入多少訊息就放多少,然後在需要的時候再去處理它們。
總結為三點:非同步處理、流量削峰、應用解耦。
為什麼要使用訊息佇列
參考 訊息佇列本身有確認訊息被正確消費的機制 4.2message acknowledgment訊息確認 為了保證資料不被丟失,rabbitmq支援訊息確認機制,為了保證資料能被正確處理而不僅僅是被consumer收到,那麼我們不能採用no ack,而應該是在處理完資料之後傳送ack.在處理完資料之...
為什麼要使用訊息佇列?
在實際的專案實踐中,訊息佇列有的使用還是比較常用的,有時在想訊息佇列的好處是什麼,使用mq能帶來什麼好處。在說之前,目前市場主流的幾種mq activemq,rabbitmq,rocketmq,kafka 關於mq的入門就不說了,可以找下教程,寫個demo測試一下就好了,還是比較簡單的。先上張圖了解...
為什麼要使用訊息佇列
的 個人覺得關於訊息佇列的作用的概括簡明扼要,遂摘錄至此 現代的網際網路應用大量地使用了訊息佇列 messaging 訊息佇列不僅被用於系統內部元件之間的通訊,同時也被用於系統跟其它服務之間的互動。訊息佇列的使用可以增加系統的可擴充套件性 靈活性和使用者體驗。非基於訊息佇列的系統,其執行速度取決於系...