新聞中心
這篇文章主要講解了“怎么掌握Rabbitmq”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么掌握Rabbitmq”吧!
成都創(chuàng)新互聯(lián)是專業(yè)的北湖網(wǎng)站建設(shè)公司,北湖接單;提供網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行北湖網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
RabbitMQ 是功能強(qiáng)大的開源消息代理。根據(jù)官網(wǎng)稱:也是使用量最廣泛的消息隊(duì)列。就像他的口號(hào)“Messaging that just works”,開箱即用使用簡(jiǎn)單,支持多種消息傳輸協(xié)議(AMQP、STOMP、MQTT)。
一個(gè)應(yīng)用程序或者服務(wù)如何使用RabbitMq呢?
消息
隊(duì)列
注意:什么時(shí)候消息才會(huì)從隊(duì)列中刪除呢?這里涉及到一個(gè)消息確認(rèn)的動(dòng)作。消費(fèi)者接收到的每一條消息都必須進(jìn)行確認(rèn)。才會(huì)從隊(duì)列中刪除。消費(fèi)者可以通過AMQP的Basic.Ack命令顯式地向rabbtmq發(fā)送一個(gè)確認(rèn),或者在訂閱到隊(duì)列的時(shí)候就將autoAck屬性設(shè)置為true;如:autoAck: true,一旦消費(fèi)者接收消息,rabbitmq會(huì)自動(dòng)視其確認(rèn)了消息。
只要消費(fèi)者不進(jìn)行確認(rèn),rabbit將不會(huì)給該消費(fèi)者發(fā)送消息,因?yàn)樵谏弦粭l消息被確認(rèn)之前,rabbit會(huì)認(rèn)為這個(gè)消費(fèi)者并沒有準(zhǔn)備好接收下一條消息的能力。
在沒有辦法正常確認(rèn)消息,不能一直堵塞呀,比如消費(fèi)者有bug。那就使用AMPQ的Basic.Reject命令;明確的拒絕這條消息,其中一個(gè)參數(shù)requeue如果設(shè)置了ture的話,Rabbit會(huì)把消息重新發(fā)給下一個(gè)訂閱的消費(fèi)者。
如果你檢測(cè)到一條消息本身有錯(cuò)誤而任何一個(gè)消費(fèi)者都無法處理的時(shí)候,就可以把requeue設(shè)置為false,rabbitmq會(huì)把消息從隊(duì)里中移除,而不會(huì)把他發(fā)送給新的消費(fèi)者。
注意:這里你可以使用對(duì)拒絕的消息進(jìn)行特殊處理,比如發(fā)送到死信隊(duì)列或者專門收集的erro隊(duì)里中。
小結(jié):隊(duì)列是amqp消息通信的基礎(chǔ)模塊
1.為消息提供的處所,消息在此等待消費(fèi)
2.對(duì)負(fù)載均衡來說,隊(duì)列是絕佳方案。只需附加一堆消費(fèi)者,并讓rabbitmq以循環(huán)的方式均勻地分配發(fā)來的消息。
3.隊(duì)列是rabbit中消息的最后的終點(diǎn)。
交換器、綁定
交換器有四種類型:direct、fanout、topic和headers;每種類型實(shí)現(xiàn)了不同的路由算法,前三個(gè)比較常用。
channel.BasicPublish(exchange: "", routingKey: "hello", basicProperties: null, body: body);
2.fanout交換器
2.topic交換器
這類交換器允許不同源頭的消息到達(dá)同一個(gè)隊(duì)列。路由算法-根據(jù)全部或部分路由鍵匹配將消息路由綁定的隊(duì)列上。使用場(chǎng)景-根據(jù)某些條件廣播到特定的隊(duì)列上。
感謝各位的閱讀,以上就是“怎么掌握Rabbitmq”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)怎么掌握Rabbitmq這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
當(dāng)前名稱:怎么掌握Rabbitmq
網(wǎng)站地址:http://ef60e0e.cn/article/gehcco.html