的**,個人覺得關於訊息佇列的作用的概括簡明扼要,遂摘錄至此:
現代的網際網路應用大量地使用了訊息佇列(messaging)。訊息佇列不僅被用於系統內部元件之間的通訊,同時也被用於系統跟其它服務之間的互動。訊息佇列的使用可以增加系統的可擴充套件性、靈活性和使用者體驗。非基於訊息佇列的系統,其執行速度取決於系統中最慢的元件的速度(注:短板效應)。而基於訊息佇列可以將系統中各元件解除耦合,這樣系統就不再受最慢元件的束縛,各元件可以非同步執行從而得以更快的速度完成各自的工作。
訊息佇列能夠將業務邏輯解耦,呼叫方只需要下達命令而不用等待整個邏輯執行完畢。除此之外訊息佇列也可以抑制效能波峰的產生,在瞬時業務增長產生時保持效能曲線的平滑。
發帖之後只需給佇列傳送一條訊息, 告訴佇列「我發帖子了」,然後把發帖的結果返回給使用者。 這時另乙個叫做worker的程序會取出這條訊息並執行那100條insert查詢。這樣,推送通知的操作在後台非同步執行, 使用者就能立即看到發帖結果。更精彩的是,可以執行多個worker實現分布式,多繁重的任務都不在話下了。
為什麼要使用訊息佇列
參考 訊息佇列本身有確認訊息被正確消費的機制 4.2message acknowledgment訊息確認 為了保證資料不被丟失,rabbitmq支援訊息確認機制,為了保證資料能被正確處理而不僅僅是被consumer收到,那麼我們不能採用no ack,而應該是在處理完資料之後傳送ack.在處理完資料之...
為什麼要使用訊息佇列?
在實際的專案實踐中,訊息佇列有的使用還是比較常用的,有時在想訊息佇列的好處是什麼,使用mq能帶來什麼好處。在說之前,目前市場主流的幾種mq activemq,rabbitmq,rocketmq,kafka 關於mq的入門就不說了,可以找下教程,寫個demo測試一下就好了,還是比較簡單的。先上張圖了解...
為什麼要使用訊息佇列
緩衝和削峰 上游資料時有突發流量,下游可能扛不住,或者下游沒有足夠多的機器來保證冗餘,kafka在中間可以起到乙個緩衝的作用,把訊息暫存在kafka中,下游服務就可以按照自己的節奏進行慢慢處理。解耦和擴充套件性 專案開始的時候,並不能確定具體需求。訊息佇列可以作為乙個介面層,解耦重要的業務流程。只需...