老的消息中间件投递失败的类型值_图文结合了解一下Java消息中间件的概述
為什么需要使用消息中間件
在介紹消息中間件之前,我們先來看一個故事:
老王的睡前故事:
在很久很久以前,小明隔壁有個姓王的鄰居,姑且就叫隔壁老王吧。隔壁老王有個大女兒,名叫王蘭花秀麗,秀麗從小就愛聽老王講睡前故事,每晚在入睡前都要老王講了睡前故事才能睡的得著。但某一天秀麗到了外地去上大學,老王為了能給秀麗講故事,只能通過打電話的方式進行,如下:
但是有時候可能由于秀麗的手機信號不好或者沒電等情況,導致老王只能不停的聯系,直到電話打通為止。老王內心:我能怎么辦,我也很絕望啊。雖然秀麗可能會比較晚才能聽到故事,但是這個過程問題也不大。直到某一天,老王的二女兒王蘭花獨秀也到了外地去上學,獨秀也愛聽老王講睡前故事。老王沒辦法,只能也給獨秀打電話。但是這樣就會導致獨秀等電話的時間需要等很久,因為老王得先給秀麗講完再給獨秀講。有時候遇到信號不好的情況就更麻煩了,這樣的話天天都需要耗到很晚,老王也感覺到身體好像被掏空:
經歷了幾個晚上后,老王想著天天這樣子不行啊,搞得身體一天不如一天。于是作為老程序員的老王冥思苦想,想到了一個類似于消息中間件的辦法,那就是注冊一個微信公眾號。老王只需要把每天的睡前故事放到這個公眾號里,讓兩個女兒來訂閱這個公眾號就行了。那么兩個女兒不僅能夠不用等待誰先聽完故事,老王也不用天天熬夜了,而且大家都覺得這個公眾號講的故事很好,于是來聽老王講故事的人越來越多,從此老王走上人生巔峰,真是可帶勁了:
借助了微信公總號來講故事后,老王不需要再去關心有多少人要聽故事,老王只需要把故事放到公眾號里。想聽故事的人只需要有網絡有微信來訂閱這個公眾號即可,這樣不僅讀者能隨時隨地聽故事,而老王也不需要被講故事的事情而耗費太多的時間。這個故事就是詮釋了消息中間件為我們解決的一些問題。
我們再來舉個栗子,例如我們現在有一個登錄系統。我們實現的是通過短信驗證碼進行登錄,所以在用戶登錄時登錄系統需要去調用短信服務發送短信驗證碼給用戶。除了短信服務外,還有一個積分服務,用于加載用戶的積分信息。用戶登錄時還需要記錄日志,這里就需要調用一個日志服務。隨著系統的發展,登錄時需要調用的服務可能越來越多。那么就意味著,用戶進行一個簡簡單單的登錄操作,就需要等待各種服務調用完成后才能登錄上去,讓登錄的時間變得越來越長,萬一有哪一個服務卡住了那么用戶的登錄也會卡住,所以登錄系統和相關服務的耦合就很高,導致用戶僅是進行登錄時就得花費很多與登錄功能本身不相關的時間。這就是通過服務調用讓其他系統感知事件發生:
消息中間件就是用于解除這種耦合的,當用戶發送登錄請求并通過驗證后,消息中間件就可以馬上通知用戶登錄成功,而給其他服務投遞消息的工作就由消息中間件去完成,也就是會進行一個異步處理,而用戶是無感知的,不會拖慢用戶的登錄時間。通過消息中間件解耦服務調用:
消息中間件帶來的好處:
- 解耦系統
- 異步通知
- 橫向擴展
- 安全可靠
- 順序保證
- ...
最后最主要的是
- 點贊(感謝)
- ...
- 轉發(感謝)
- ...
- 關注(感謝)
- ...
總結
以上是生活随笔為你收集整理的老的消息中间件投递失败的类型值_图文结合了解一下Java消息中间件的概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 采购订单模板_采购必备:如何搭建合规的采
- 下一篇: 冒泡排序 java_冒泡排序Java版本