ibmmq隊列配置詳細講解 消息隊列是怎么實現的,能給出思路?
消息隊列是怎么實現的,能給出思路?我想你的問題是想問“如何能自己啊,設計”一套消息隊列框架,對嗎?現實中巳經有了很多面向相同系統(tǒng)的消息隊列軟件,能成熟的消息隊列如kafka,rocketmq等。其實現
消息隊列是怎么實現的,能給出思路?
我想你的問題是想問“如何能自己啊,設計”一套消息隊列框架,對嗎?
現實中巳經有了很多面向相同系統(tǒng)的消息隊列軟件,能成熟的消息隊列如kafka,rocketmq等。其實現語言也類型眾多,你是可以從Github之類的地方額外這些軟件來去學習和不使用。
而自己啊,設計一套消息隊列,只不過遇上不同的應用場景,其要求是是一樣的的,也沒都能夠適用所有場景的消息隊列。而下面我很簡單分析分析一個普通的、稍微地完備的消息隊列框架應該設計哪些東西,主要推薦再看看基本都功能,思想和設計。希望能幫到你。
消息隊列要注意是是為系統(tǒng)解耦,先說說看設計上必須考慮到哪些。
1、一個都很發(fā)下的消息隊列要確定100元以內功能(不已經列表)
消息收與發(fā)機制、消息剝落如何處理、、消息不易脫妝化、消息可信度高投遞(至多保證四次投遞,以及重復投遞的處理)、Topic接受(僅有或多Topic)、多消費者投遞(同一Topic消息)、投遞回溯、集群和負載均衡等性能設計、事務支持、監(jiān)控和告警等魔獸維護功能
也差不多有這些吧。
以上是設計是需要確定的東東。
再簡單說哈實現程序要確定什么。
2、實現的話,要注意從協議、轉儲、消費簡單點說說。
?
協議:這個展開攻擊了很多內容。簡單啊說那是現在高速公路通行的是用RPC框架利用通信。借用PRC框架幫忙解決負載均衡,服務發(fā)現自己,協議化,序列化等問題。RPC框架你可以不百度清楚下。
消息首先Topic序列化并組織到存儲管道中,管道維護一個鎖,完成鎖的消費者網站查詢并獲得自己的消息項。
存儲:存儲管道象會建立起在內存、文件系統(tǒng)(本地或分布式)、數據庫(關系、非關系兩者皆可)。這哪一種依據什么具體情況選用。比如:不需要速度,不必須深度則判斷內存,是需要可信度高就選數據庫,等等。
?
消費關系:消息投遞到消費者一般需要廣播或單播,最常見的使用場景是組內單播,組間廣播,對如一個集群內可以不不使用相同的群組來注冊訂閱。大多還不需要輔助系統(tǒng)好處程序維護消費訂閱關系,在消費關系發(fā)生了什么變化時口中發(fā)出通知。
?
同時是需要而且判斷的東西另外:消息的可靠到達,去確認與刪一,序列號環(huán)形折彎等等。這些幾句話說不清楚,有時間你可以不在快回復中提問,我具體看知道回答。
rabbitMQ點對點,一個隊列可以多個消費者嗎?
rabbitMQ沒用啊過,ActiveMQ中我剛測試出來,這個可以有多個消費者,而且消息是按順序交回給不同的消費者,例如消息1給消費者a,消息2給消費者b,消息3給消費者a,消息4給消費者b...,這樣的好處是實現方法了負載均衡,要是消費者b突然死干凈了,消費者a那就可以正常了接收的。
個人再理解,要是我說的不對,期望有大神糾正,多謝了。