老王的睡前小故事,讓你輕松理解什么是消息中間件
為什么需要使用消息中間件
在介紹消息中間件之前,我們先來看一個故事:
老王的睡前故事:
在很久很久以前,小明隔壁有個姓王的鄰居,姑且就叫隔壁老王吧。隔壁老王有個大女兒,名叫王蘭花秀麗,秀麗從小就愛聽老王講睡前故事,每晚在入睡前都要老王講了睡前故事才能睡的得著。但某一天秀麗到了外地去上大學,老王為了能給秀麗講故事,只能通過打電話的方式進行,如下:
但是有時候可能由于秀麗的手機信號不好或者沒電等情況,導致老王只能不停的聯系,直到電話打通為止。老王內心:我能怎么辦,我也很絕望啊。雖然秀麗可能會比較晚才能聽到故事,但是這個過程問題也不大。直到某一天,老王的二女兒王蘭花秀秀也到了外地去上學,獨秀也愛聽老王講睡前故事。老王沒辦法,只能也給秀秀打電話。但是這樣就會導致獨秀等電話的時間需要等很久,因為老王得先給秀麗講完再給獨秀講。有時候遇到信號不好的情況就更麻煩了,這樣的話天天都需要耗到很晚,老王也感覺到身體好像被掏空:
經歷了幾個晚上后,老王想著天天這樣子不行啊,搞得身體一天不如一天。于是作為老程序員的老王冥思苦想,想到了一個類似于消息中間件的辦法,那就是注冊一個微信公眾號。老王只需要把每天的睡前故事放到這個公眾號里,讓兩個女兒來訂閱這個公眾號就行了。那么兩個女兒不僅能夠不用等待誰先聽完故事,老王也不用天天熬夜了,而且大家都覺得這個公眾號講的故事很好,于是來聽老王講故事的人越來越多,從此老王走上人生巔峰,真是可帶勁了:
借助了微信公總號來講故事后,老王不需要再去關心有多少人要聽故事,老王只需要把故事放到公眾號里。想聽故事的人只需要有網絡有微信來訂閱這個公眾號即可,這樣不僅讀者能隨時隨地聽故事,而老王也不需要被講故事的事情而耗費太多的時間。這個故事就是詮釋了消息中間件為我們解決的一些問題。
消息中間件概述
什么是中間件:
非底層操作系統軟件,非業務應用軟件,不是直接給最終用戶使用的,不能直接給客戶帶來價值的軟件統稱為中間件。什么是消息中間件:
關注于數據的發送和接收,利用高效可靠的異步消息傳遞機制集成分布式系統消息中間件流程圖:
說到消息中間件不得不提一下JMS規范,什么是JMS規范:
Java消息服務(Java Message Service)即JMS,是一個Java平臺中關于面向消息中間件的API,用于在兩個應用程序之間,或分布式系統中發送消息,進行異步通信。同樣的,涉及到消息中間件也需要對AMQP協議有一定的了解,什么是AMQP協議:
AMQP(advanced message queuing protocol)是一個提供統一消息服務的應用層標準協議,基于此協議的客戶端與消息中間件可傳遞消息,并不受客戶端/中間件不同產品,不同開發語言條件的限制。JMS和AMQP對比:
喜歡本文的,可以在文章下方點個大拇指,關注我,持續更新編程干貨