更新時間:2022-08-05 09:24:08 來源:動力節(jié)點(diǎn) 瀏覽970次
在Java教程中大家會學(xué)到消息隊(duì)列,消息隊(duì)列(MQ),是一種應(yīng)用程序?qū)?yīng)用程序的通信方法。應(yīng)用程序通過寫和檢索出入列隊(duì)的針對應(yīng)用程序的數(shù)據(jù)(消息)來通信,而無需專用連接來鏈接它們。
消息傳遞指的是程序之間通過在消息中發(fā)送數(shù)據(jù)進(jìn)行通信,而不是通過直接調(diào)用彼此來通信,直接調(diào)用通常是用于諸如遠(yuǎn)程過程調(diào)用的技術(shù)。排隊(duì)指的是應(yīng)用程序通過隊(duì)列來通信。隊(duì)列的使用除去了接收和發(fā)送應(yīng)用程序同時執(zhí)行的要求。

這樣的場景你一定不陌生:小王到M記點(diǎn)餐之后,服務(wù)員給了他一個號牌,并讓他在柜臺桌子前方等待叫號取餐。每個人都按照自己付款拿到的號牌順序排隊(duì)等叫號。即使店里人再多,也不會顯得沒有秩序。
在上述場景中,柜臺其實(shí)就充當(dāng)了一個消息隊(duì)列(Message Queue)。小王等生產(chǎn)者把訂餐的消息發(fā)送到柜臺即消息隊(duì)列里,又從其中取了餐即消費(fèi)了消息,可以說這就是消息隊(duì)列的一個完整走向——消息被發(fā)送到隊(duì)列中,又成功被消費(fèi)者消費(fèi)。“消息隊(duì)列”是在消息的傳輸過程中保存消息的容器,隊(duì)列的主要目的是提供路由并保證消息的傳遞。如果發(fā)送消息時接收者不可用,消息隊(duì)列會保留消息,直到可以成功地傳遞它。
一般來說,消息隊(duì)列是一種異步的服務(wù)間通信方式,是分布式系統(tǒng)中重要的組件,主要解決應(yīng)用耦合,異步消息,流量削鋒等問題,實(shí)現(xiàn)高性能,高可用,可伸縮和最終一致性架構(gòu)。使用較多的消息隊(duì)列有RocketMQ、RabbitMQ、Kafka等。如果大家感興趣,可以關(guān)注一下動力節(jié)點(diǎn)的消息隊(duì)列MQ詳解,里面有更豐富的知識等著大家去學(xué)習(xí),希望對大家能夠有所幫助。

初級 202925

初級 203221

初級 202629

初級 203743