有從別的地方複製的介紹,侵刪代表訊息佇列,是一種應用程式對應用程式的通訊方法;通過訊息傳遞佇列傳送和接收訊息資料,達到兩者之間的資訊交換。
broker
訊息伺服器,作為server提供訊息核心服務
producer
訊息生產者,業務的發起方,負責生產訊息傳輸給broker,
consumer
訊息消費者,業務的處理方,負責從broker獲取訊息並進行業務邏輯處理
topic
主題,發布訂閱模式下的訊息統一匯集地,不同生產者向topic傳送訊息,由mq伺服器分發到不同的訂閱者,實現訊息的廣播
queue
佇列,ptp模式下,特定生產者向特定queue傳送訊息,消費者訂閱特定的queue完成指定訊息的接收
message
訊息體,根據不同通訊協議定義的固定格式進行編碼的資料報,來封裝業務資料,實現訊息的傳輸
老牌的activemq、rabbitmq,炙手可熱的kafka,阿里巴巴自主開發rocketmq等。
多對多
乙個或多個publish將一條msg發到乙個或多個queue中,乙個queue可以有多個consumer監聽,但是msg只能被其中乙個consumer消費
pub/sub發布訂閱(廣播)
乙個或多個publish將一條msg發給全部queue,可以有多個consumer消費
應用解耦
非同步訊息
流量削峰
耦合、解耦
兩者有呼叫關係,就會產生依賴,這就是耦合
常見的方法是通過緩衝區來降低相互的依賴性,就是解耦。
同步、非同步
同步
b一直等待a的處理結果出來之後,才去做接下來要做的事情
非同步
b在等待a處理的同時,先去做別的事情,直到a通知,b才去接收資料
阻塞、非阻塞
阻塞
b主動去監聽或詢問a是否處理完畢
非阻塞
a主動去告訴b自己已經處理完畢 削峰
通過緩衝區儲存的方法,來解決瞬間出現大量操作導致系統宕機的情況。
系統可用性降低
如果mq死掉,將會導致整個系統全部崩潰
系統複雜度提高
會出現:訊息重複消費、訊息丟失、傳遞訊息的順序錯誤 等情況
一致性問題
有的系統請求成功了,有的失敗了,沒辦法判斷和處理
效率;
增加了一層mq,效率有所降低。
除錯和測試的工作加大。
從零了解Xshell和Xftp
在windows下遠端連線linux主機的ssh客戶端包括xshell securecrt putty bitvise ssh client mobaxterm dameware ssh smartty cygwin等。xshell 是乙個強大的安全終端模擬軟體,它支援ssh1,ssh2,以及mic...
python教程 從零帶你了解for 迴圈語句
一 for迴圈 1 從某個集合 列表等 裡順次取值 遍歷字串 name shenzhen list1 for a in name print list1 變數列表 fruits banana mango for i in fruits print 當前水果 i 遍歷字典 dic1 for key i...
想了解MQ,讀這篇就夠了
mq全稱為message queue 訊息佇列,是一種應用程式對應用程式的訊息通訊,一端只管往佇列不斷發布資訊,另一端只管往佇列中讀取訊息,發布者不需要關心讀取訊息的誰,讀取訊息者不需要關心發布訊息的是誰,各幹各的互不干擾。市場上現在常用的訊息佇列有 rabbitmq rocketmq kafka,...