1. 程式人生 > >什麼是訊息佇列中介軟體詳解

什麼是訊息佇列中介軟體詳解

Apache kafka是訊息中介軟體的一種,我發現很多人不知道訊息中介軟體是什麼,在開始學習之前,我這邊就先簡單的解釋一下什麼是訊息中介軟體,只是粗略的講解,目前kafka已經可以做更多的事情。

舉個例子,生產者消費者,生產者生產雞蛋,消費者消費雞蛋,生產者生產一個雞蛋,消費者就消費一個雞蛋,假設消費者消費雞蛋的時候噎住了(系統宕機了),生產者還在生產雞蛋,那新生產的雞蛋就丟失了。再比如生產者很強勁(大交易量的情況),生產者1秒鐘生產100個雞蛋,消費者1秒鐘只能吃50個雞蛋,那要不了一會,消費者就吃不消了(訊息堵塞,最終導致系統超時),消費者拒絕再吃了,”雞蛋“又丟失了,這個時候我們放個籃子在它們中間,生產出來的雞蛋都放到籃子裡,消費者去籃子裡拿雞蛋,這樣雞蛋就不會丟失了,都在籃子裡,而這個籃子就是”kafka“。
雞蛋其實就是“資料流”,系統之間的互動都是通過“資料流”來傳輸的(就是tcp、http什麼的),也稱為報文,也叫“訊息”。
訊息佇列滿了,其實就是籃子滿了,”雞蛋“ 放不下了,那趕緊多放幾個籃子,其實就是kafka的擴容。
各位現在知道kafka是幹什麼的了吧,它就是那個"籃子".