rabbitmq延時隊列優(yōu)缺點(diǎn) mq通道是什么?
mq通道是什么?Mq信道是一種通信信道,也叫消息隊列,類似于人類交談中、郵件、的一種通信。排隊管理程序隊列管理器是mq系統(tǒng)中的頂級概念,它為我們提供基于隊列的消息服務(wù)。新聞在mq中,我們將應(yīng)用程序發(fā)送
mq通道是什么?
Mq信道是一種通信信道,也叫消息隊列,類似于人類交談中、郵件、的一種通信。
排隊管理程序
隊列管理器是mq系統(tǒng)中的頂級概念,它為我們提供基于隊列的消息服務(wù)。
新聞
在mq中,我們將應(yīng)用程序發(fā)送到mq進(jìn)行傳輸?shù)臄?shù)據(jù)定義為消息,我們可以定義消息的內(nèi)容,并對消息進(jìn)行廣義的理解。
RabbitMQ如何通過持久化保證消息99.99%不丟失?
目前主流的消息系統(tǒng)有RabbitMQ、RocketMQ、ActiveMQ等。RabbitMQ是基于Erlang開發(fā)的,具有良好的并發(fā)和延遲性能。
RabbitMQ消息的可靠性達(dá)到了什么程度?消息可靠性是RabbitMQ的一個主要特性。RabbitMQ是如何實現(xiàn)消息可靠性的?實際上是通過消息持久化來實現(xiàn)的,避免了服務(wù)異常(重啟、宕機(jī))下消息和隊列丟失的風(fēng)險。
消息持久化是指RabbitMQ將內(nèi)存(交換、隊列、消息)中的數(shù)據(jù)存儲在硬盤上,防止內(nèi)存中的數(shù)據(jù)因異常情況而丟失。
RabbitMQ是如何實現(xiàn)消息持久化的?RabbitMQ中不同的數(shù)據(jù)持久化方法是不同的,主要包括:
1.交流的持久性。
交換丟失會影響后續(xù)消息的寫入。在創(chuàng)建Exchange時,我們需要將durable指定為true來表示持久性。
2.隊列的持久性
在上面的第一步中,即使在創(chuàng)建交換機(jī)時將durable設(shè)置為true,Exchange也不會丟失,但是其中的隊列仍然會丟失。如何保證隊列的持久性?創(chuàng)建隊列時,還可以將durable指定為true。
3.消息的持久性
經(jīng)過以上兩步,重啟RabbitMQ后,雖然Exchange和Queue不會丟失,但是Queue中的消息會丟失,那么如何保證消息持久性不會丟失呢?我們將消息傳遞模式設(shè)置為2,這意味著消息持久性。
消息持久性可以 t保證100%的數(shù)據(jù)不會。;不要迷路。當(dāng)我們設(shè)置開關(guān)/隊列/消息持久性時,我們?nèi)匀豢梢?t保證100%的數(shù)據(jù)不會。;不要迷路。這其實很好理解。將內(nèi)存中的數(shù)據(jù)寫入硬盤需要時間。在突然斷電、停機(jī)和重啟的情況下,消息可能無法及時到達(dá),因此這些消息可能會丟失。
消息持久性會帶來性能問題。我們知道消息持久化是將內(nèi)存中的數(shù)據(jù)寫到硬盤上,但是硬盤的讀寫速度遠(yuǎn)不及內(nèi)存,所以開啟消息持久化會影響RabbitMQ。性能。
那個 這是我的看法。你怎么看待這個問題?歡迎在下方評論區(qū)交流~我是科技領(lǐng)域的創(chuàng)作者,有十年互聯(lián)網(wǎng)行業(yè)經(jīng)驗。歡迎關(guān)注我了解更多科技知識!