欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

每日八股:消息隊(duì)列

什么是消息隊(duì)列?

可以把消息隊(duì)列理解為一個(gè)使用隊(duì)列來通信的組件。它的本質(zhì)就是個(gè)轉(zhuǎn)發(fā)器,包含發(fā)消息、存消息、消費(fèi)消息的過程。我們通常說的消息隊(duì)列,簡稱MQ(Message Queue),它其實(shí)就是消息中間件,比較流行的有RabbitMQ,RocketMQ,Kafka。

如何保證冪等性?

冪等性是指同一操作的多次執(zhí)行對系統(tǒng)狀態(tài)的影響與一次執(zhí)行結(jié)果一致。 實(shí)現(xiàn)冪等性的核心方案:

1.唯一標(biāo)識(shí)(冪等鍵):客戶端為每個(gè)請求生成全局唯一ID(如UUID、業(yè)務(wù)主鍵),服務(wù)端校驗(yàn)該ID是否已處理,適用場景接口調(diào)用、消息消費(fèi)等。

2.數(shù)據(jù)庫事務(wù)+樂觀鎖:通過版本號(hào)或狀態(tài)字段控制并發(fā)更新,確保多次更新等同于單次操作,適用場景數(shù)據(jù)庫記錄更新。

3.數(shù)據(jù)庫唯一約束:利用數(shù)據(jù)庫唯一索引防止重復(fù)數(shù)據(jù)寫入,適用場景數(shù)據(jù)插入場景。

4.分布式鎖:通過鎖機(jī)制保證同一時(shí)刻僅有一個(gè)請求執(zhí)行關(guān)鍵操作,適用場景高并發(fā)下的資源搶奪(如秒殺)。

5.消息去重:消息隊(duì)列生產(chǎn)者為每條消息生成唯一的消息ID,消費(fèi)者在處理消息前,先檢查該消息ID是否已經(jīng)處理過,如果已經(jīng)處理過則丟棄該消息。

RabbitMQ的特性

RabbitMQ以可靠性、靈活性和易擴(kuò)展性為核心優(yōu)勢,適合需要穩(wěn)定消息傳遞的復(fù)雜系統(tǒng)。核心特性如下:

1.持久化機(jī)制:RabbitMQ支持消息、隊(duì)列和交換機(jī)的持久化。當(dāng)啟用持久化時(shí),消息會(huì)被寫入磁盤,即使RabbitMQ服務(wù)器重啟,消息也不會(huì)丟失。

2.消息確認(rèn)機(jī)制:提供了生產(chǎn)者確認(rèn)和消費(fèi)者確認(rèn)機(jī)制。生產(chǎn)者可以設(shè)置confirm模式,當(dāng)消息成功到達(dá)RabbitMQ服務(wù)器,會(huì)收到消息;消費(fèi)者在處理完消息后,會(huì)向RabbitMQ服務(wù)器發(fā)送確認(rèn)信號(hào),告知服務(wù)器該消息已被成功處理,服務(wù)器就會(huì)將消息從隊(duì)列中刪除。

3.鏡像隊(duì)列:支持創(chuàng)建鏡像隊(duì)列,將隊(duì)列的內(nèi)容復(fù)制到多個(gè)節(jié)點(diǎn)上,提高消息的可用性和可靠性,當(dāng)一個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí),其他節(jié)點(diǎn)仍然可以提供服務(wù),確保消息不會(huì)丟失。

4.多種交換器類型:RabbitMQ提供了多種類型的交換器。不同類型的交換器根據(jù)不同的規(guī)則將消息路由到隊(duì)列中。

RabbitMQ的底層架構(gòu)是什么?

1.核心組件:生產(chǎn)者負(fù)責(zé)發(fā)送消息到RabbitMQ,消費(fèi)者負(fù)責(zé)從RabbitMQ接收并處理消息,RabbitMQ本身負(fù)責(zé)存儲(chǔ)和轉(zhuǎn)發(fā)消息。

2.交換機(jī):交換機(jī)接收來自生產(chǎn)者的消息,并根據(jù)routing key和綁定規(guī)則將消息路由到一個(gè)或多個(gè)隊(duì)列。

3.持久化:RabbitMQ支持消息的持久化,可以將消息保存在磁盤上,以確保在RabbitMQ重啟后消息不丟失,隊(duì)列也可以設(shè)置為持久化,以保證其結(jié)構(gòu)在重啟后不會(huì)丟失。

4.確認(rèn)機(jī)制:為了確保消息可靠送達(dá),RabbitMQ使用確認(rèn)機(jī)制,消費(fèi)者在處理完消息后發(fā)送確認(rèn)給RabbitMQ,未確認(rèn)的消息會(huì)重新入隊(duì)。

5.高可用性:RabbitMQ提供了集群模式,可以將多個(gè)RabbitMQ實(shí)例組成一個(gè)集群,以提高可用性和負(fù)載均衡。通過鏡像隊(duì)列,可以在多個(gè)節(jié)點(diǎn)上復(fù)制同一隊(duì)列的內(nèi)容,以防止單點(diǎn)故障。

#八股##消息隊(duì)列##Java選手#
全部評(píng)論

相關(guān)推薦

評(píng)論
1
4
分享

創(chuàng)作者周榜

更多
??途W(wǎng)
??推髽I(yè)服務(wù)