消息隊(duì)列

?xml version="1.0" encoding="UTF-8"?

ActiveMQ:Java語言寫的 ? 嚴(yán)格遵守?JMS java message service

RabbitMQ:Erang ?非Java系統(tǒng)的首選

ZeroMQ:內(nèi)存里用的,不支持持久化,金融場景比較多見

RocketMQ:阿里巴巴開源中間件 ?專門Java系統(tǒng)

Kafka:天生設(shè)計(jì)為分布式 ?很方便擴(kuò)展 ?超高并發(fā) ?10w+

第一種:點(diǎn)對點(diǎn)

先進(jìn)先出

第二種:發(fā)布訂閱模型


啟動:

activemqstart

http://localhost:8161?admin admin

消息隊(duì)列處理消息的主程序就叫Broker

ACK機(jī)制

如果broker收到producer的消息,會有一個(gè)回傳(ack),如果producer沒有收到ack,會重新發(fā)一遍剛才的消息,如果超過限制的重試次數(shù),會拋異常。

broker發(fā)往consumer同理。


冪等:多次調(diào)用 結(jié)果和一次調(diào)用一致

場景:ack回傳的時(shí)候網(wǎng)絡(luò)故障,producer重試的時(shí)候帶一個(gè)messageid,就能達(dá)到冪等

consumer獲取消息有兩種方式:

pull:輪詢消耗資源,有延遲

push:消息比較及時(shí)

消息持久化

kahaDB:消息先存在kahaDB中,如果斷線重連就從這里讀取


topic 持久化訂閱者 ?一直保持連接 ?

?? ?? ? ? 非持久化訂閱者 ?上線了再發(fā)送

activeMQ 高可用

主從:同一時(shí)間只有一個(gè)在運(yùn)行,另一個(gè)準(zhǔn)備狀態(tài)。不能負(fù)載均衡,但一般不會丟失消息

負(fù)載均衡:可能會丟失消息


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容