1.訂閱消息:basic.consum持續(xù)的訂閱消息;basic.get訂閱消息->獲得單條消息->取消訂閱消息。
2.一個(gè)隊(duì)列多個(gè)訂閱者,mq輪訓(xùn)發(fā)送消息給所有訂閱者,一個(gè)消息只由一個(gè)訂閱者消費(fèi)。
3.訂閱者確認(rèn):消費(fèi)者接收的每一條消息都必須進(jìn)行確認(rèn)。
消費(fèi)者收到消息然后斷開連接或者取消訂閱,MQ會(huì)認(rèn)為此消息沒(méi)有分發(fā),會(huì)重新發(fā)給下一個(gè)訂閱的消費(fèi)者。
回復(fù)basic.ack之前,MQ將不會(huì)發(fā)送消息給該訂閱者。若訂閱者發(fā)生了無(wú)法處理的錯(cuò)誤需要其他訂閱者處理或延時(shí)處理,可以回復(fù)basic.reject.requeue=true,MQ會(huì)把該消息發(fā)送給下一個(gè)訂閱者。
訂閱者若發(fā)現(xiàn)該消息格式錯(cuò)誤所有訂閱者都無(wú)法處理,需要回復(fù)basic.reject.requeue=false,MQ將刪除該消息(將來(lái)將會(huì)把消息移動(dòng)到 dead letter隊(duì)列)。
4.創(chuàng)建隊(duì)列: