av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

程序員經(jīng)典面試題,消息隊(duì)列怎么用,才能保證萬(wàn)無(wú)一失

 據(jù)不完全統(tǒng)計(jì),工業(yè)級(jí)別的代碼,幾乎有三分之二都是在處理異常情況。跟很多面試官聊過(guò),在面試中如何考察一個(gè)應(yīng)試者的思維是否周全,比較好的方法就是考察他是否能夠思考周全,想到所有異常情況的處理方案。相信大家都使用過(guò)消息MQ,他可以很好地進(jìn)行系統(tǒng)解耦,減低變成的復(fù)雜度,又可以進(jìn)行削峰,增加系統(tǒng)在高并發(fā)的穩(wěn)定性,那么使用MQ有哪些注意事項(xiàng)呢?是不是MQ就是萬(wàn)無(wú)一失呢?一條MQ消息從產(chǎn)生到消費(fèi),有沒(méi)有可能失敗?在哪些環(huán)節(jié)可能失敗,如何處理?

消息生產(chǎn)失敗

一般來(lái)說(shuō),從生產(chǎn)者到MQ中間件是通過(guò)網(wǎng)絡(luò)調(diào)用的,是網(wǎng)絡(luò)調(diào)用就有可能存在失敗。下面這些原因,都有可能造成MQ生產(chǎn)失敗,例如網(wǎng)絡(luò)波動(dòng),盡管生產(chǎn)者到MQ服務(wù)器之間是內(nèi)網(wǎng)調(diào)用,并不意味著網(wǎng)絡(luò)調(diào)用的成功率就是百分之百,內(nèi)網(wǎng)調(diào)用也會(huì)遇到網(wǎng)絡(luò)波動(dòng),造成調(diào)用超時(shí)或者失敗。又如調(diào)用的MQ機(jī)器瞬間Crash掉,這也是有可能造成調(diào)用失敗的。面對(duì)生產(chǎn)者調(diào)用MQ的失敗,我們是容易比較容易處理的,我們只要簡(jiǎn)單地進(jìn)行重試即可,如果重試2-3次失敗,那么非常有可能是出現(xiàn)大問(wèn)題,這個(gè)時(shí)候再重試意義不大,需要進(jìn)行告警,讓開(kāi)發(fā)運(yùn)維介入,進(jìn)行處理。

MQ處理存儲(chǔ)失敗

消息到達(dá)消息中間件之后,通常是會(huì)被存儲(chǔ)起來(lái)的,只有被寫入到磁盤中,消息才是真正地被存儲(chǔ),不會(huì)丟失。但是,大部分MQ中間件并不是收到消息就立馬寫入磁盤的,只是由于磁盤的寫入速度相對(duì)于內(nèi)存,現(xiàn)得慢得多得多,所以,像Kafka這樣的消息系統(tǒng),是會(huì)把消息寫到緩沖區(qū)中,異步寫入磁盤,如果機(jī)器在中途突然斷電,是有可能會(huì)丟失消息的。為了解決這個(gè)問(wèn)題,大部分的MQ都是采用分布式部署,消息會(huì)在多臺(tái)機(jī)器上寫入緩存中成功才會(huì)返回給業(yè)務(wù)方成功,由于多臺(tái)機(jī)器同時(shí)斷電的可能性較低,我們可以認(rèn)為這是比較低成本又可靠的方案。

消費(fèi)者處理失敗

一般的MQ都有MQ重試機(jī)制,如果處理失敗,就會(huì)嘗試重復(fù)消費(fèi)這個(gè)MQ。這個(gè)帶來(lái)的問(wèn)題就是,MQ可能已經(jīng)成功消費(fèi)了,但是在通知MQ中間件的時(shí)候失敗了,這個(gè)時(shí)候帶來(lái)的結(jié)果就是消息重復(fù)消費(fèi)。同理,在生產(chǎn)者重試的時(shí)候,也會(huì)遇到消息重復(fù)消費(fèi)的問(wèn)題。這個(gè)時(shí)候,就要求我們盡量把接口設(shè)計(jì)得有冪等性,這個(gè)時(shí)候即便是重復(fù)消費(fèi),也不用擔(dān)心什么問(wèn)題了?;旧献龊眠@三點(diǎn),我們就能夠大大地提高我們地系統(tǒng)地可用性了!如果你有興趣,歡迎大家關(guān)注我,共同學(xué)習(xí),共同進(jìn)步。大家的支持是我繼續(xù)嘮嗑的動(dòng)力。


本文名稱:程序員經(jīng)典面試題,消息隊(duì)列怎么用,才能保證萬(wàn)無(wú)一失
本文來(lái)源:http://uogjgqi.cn/article/coeohcd.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流