国产精品无码一区二区三区太,亚洲一线产区二线产区区别,欧美A区,人妻jealousvue人妻

×

面試時(shí),碰到消息隊(duì)列RabbitMQ問(wèn)題應(yīng)該怎么說(shuō)?

分類:云服務(wù)資訊 編輯:世界web端 瀏覽量:112
2021-05-10 17:17:15
現(xiàn)在的面試要求越來(lái)越高了,打開看了看幾個(gè) BOSS 招聘 Node.js 全棧開發(fā)的,其中都有一條“了解 消息隊(duì)列,并在項(xiàng)目中應(yīng)用過(guò)”,其實(shí)沒有多么高大上,看了消息隊(duì)列RabbitMQ 就知道了。
MQ全稱為Message Queue, 消息隊(duì)列(MQ)是一種應(yīng)用程序?qū)?yīng)用程序的通信方法。應(yīng)用程序通過(guò)讀寫出入隊(duì)列的消息(針對(duì)應(yīng)用程序的數(shù)據(jù))來(lái)通信,而無(wú)需專用連接來(lái)鏈接它們。
消息傳遞指的是程序之間通過(guò)在消息中發(fā)送數(shù)據(jù)進(jìn)行通信,而不是通過(guò)直接調(diào)用彼此來(lái)通信,直接調(diào)用通常是用于諸如遠(yuǎn)程過(guò)程調(diào)用的技術(shù)。排隊(duì)指的是應(yīng)用程序通過(guò) 隊(duì)列來(lái)通信。隊(duì)列的使用除去了接收和發(fā)送應(yīng)用程序同時(shí)執(zhí)行的要求。
RabbitMQ是使用Erlang語(yǔ)言開發(fā)的開源消息隊(duì)列系統(tǒng),基于AMQP協(xié)議來(lái)實(shí)現(xiàn)。AMQP的主要特征是面向消息、隊(duì)列、路由(包括點(diǎn)對(duì)點(diǎn)和發(fā)布/訂閱)、可靠性、安全。
AMQP協(xié)議更多用在企業(yè)系統(tǒng)內(nèi),對(duì)數(shù)據(jù)一致性、穩(wěn)定性和可靠性要求很高的場(chǎng)景,對(duì)性能和吞吐量的要求還在其次。
一、為什么要使用 rabbitmq
在分布式系統(tǒng)下具備異步,削峰,負(fù)載均衡等一系列高級(jí)功能;
擁有持久化的機(jī)制,進(jìn)程消息,隊(duì)列中的信息也可以保存下來(lái)。
實(shí)現(xiàn)消費(fèi)者和生產(chǎn)者之間的解耦。
對(duì)于高并發(fā)場(chǎng)景下,利用消息隊(duì)列可以使得同步訪問(wèn)變?yōu)榇性L問(wèn)達(dá)到一定量的限流,利于數(shù)據(jù)庫(kù)的操作。
可以使用消息隊(duì)列達(dá)到異步下單的效果,排隊(duì)中,后臺(tái)進(jìn)行邏輯下單。
二、消息隊(duì)列優(yōu)勢(shì)
1、應(yīng)用解耦消息隊(duì)列可以使消費(fèi)者和生產(chǎn)者直接互不干涉,互不影響,只需要把消息發(fā)送到隊(duì)列即可,而且可獨(dú)立的擴(kuò)展或修改兩邊的處理過(guò)程,只要能確保它們遵守同樣的接口約定,可以生產(chǎn)者用Node.js實(shí)現(xiàn),消費(fèi)者用python實(shí)現(xiàn)。
2、靈活性和峰值處理能力當(dāng)客戶端訪問(wèn)量突然劇增,對(duì)服務(wù)器的訪問(wèn)已經(jīng)超過(guò)服務(wù)所能處理的最大峰值,甚至導(dǎo)致服務(wù)器超時(shí)負(fù)載崩潰,使用消息隊(duì)列可以解決這個(gè)問(wèn)題,可以通過(guò)控制消費(fèi)者的處理速度和生產(chǎn)者可進(jìn)入消息隊(duì)列的數(shù)量等來(lái)避免峰值問(wèn)題。
3、排序保證消息隊(duì)列可以控制數(shù)據(jù)處理的順序,因?yàn)橄㈥?duì)列本身使用的是隊(duì)列這個(gè)數(shù)據(jù)結(jié)構(gòu),F(xiàn)IFO(先進(jìn)選出),在一些場(chǎng)景數(shù)據(jù)處理的順序很重要,比如商品下單順序等。
4、異步通信消息隊(duì)列中的有些消息,并不需要立即處理,消息隊(duì)列提供了異步處理機(jī)制,可以把消息放在隊(duì)列中并不立即處理,需要的時(shí)候處理,或者異步慢慢處理,一些不重要的發(fā)送短信和郵箱功能可以使用。
5、可擴(kuò)展性前面提到了消息隊(duì)列可以做到解耦,如果我們想增強(qiáng)消息入隊(duì)和出隊(duì)的處理頻率,很簡(jiǎn)單,并不需要改變代碼中任何內(nèi)容,可以直接對(duì)消息隊(duì)列修改一些配置即可,比如我們想限制每次發(fā)送給消費(fèi)者的消息條數(shù)等。有優(yōu)勢(shì)定有它現(xiàn)實(shí)的應(yīng)用場(chǎng)景,文章后面會(huì)針對(duì)優(yōu)勢(shì)講它們對(duì)應(yīng)的應(yīng)用場(chǎng)景。
親,別只看,你試試呀!直接進(jìn)入新網(wǎng),裝個(gè) RabbitMQ,挺有意思的。 http://www.xinnet.com/cs/rabbitmq.html


聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)

送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)

需注明出處:新網(wǎng)idc知識(shí)百科

免費(fèi)咨詢獲取折扣

Loading