怎麼看待為了mq訊息可靠性傳送訊息之前需要持久化?

時間 2021-06-12 19:09:39

1樓:mote

其實我也有相同的疑問,我目前就是將mq的訊息資料先存到資料庫乙份,然後再進行的業務處理。我感覺這樣做除了會消耗一些資源外,還是有一定好處的,比如可以用這份資料進行重試,排查問題之類的。雖然mq本身也是有重試的,但是那種容易導致佇列訊息堆積的。

其實我也在看有沒有更好的方式...

2樓:小馬

好問題,事實上,也有業務是直接用資料庫而不用MQ的,就像你提到的直接改各種狀態,弊病就是一般資料庫扛不住吞吐,所以一般只適合對吞吐不高的場景。

回到具體的問題,RabbitMQ沒有把訊息持久化到資料庫,而是寫到了它內部的message store儲存,類似KV,它存在分布式資料庫的是各種元資訊,比如Queue、Exchange等,方便從宕機時恢復,而這部分的IO顯然是很少的。

RabbitMQ設計自己的message store KV儲存的目的就是增加寫訊息時的吞吐,比如順序寫磁碟,批量寫page cache,每200ms fsync一次訊息等;而大多數資料庫,都是朝著優化讀效能的設計去的。

另外,還有更多的特性是資料庫沒有的,比如DeadLetterQueue,BackoutQueue,Topic Subscription,DelayQueue,AMQP/MQTT協議的支援,Transient messages等等。

怎麼看待以沒看到訊息或者以忘了回覆訊息為藉口的人?

我男朋友,直男,經常我給他發了訊息,一下午毫無動靜,總說是忘記了。其實不是不想回訊息,也不是真的忘記,我猜他只是看過訊息之後,怕回了訊息,就會一直聊下去,又麻煩,又浪費時間,還有工作要忙,所以乾脆等有時間了,再來回覆。但當他想起回覆的時候,又覺得,都過了這麼久了,這個話題應該過了吧,應該聊一些別的了...

怎麼看待男朋友幾天不回我訊息

乙隻羊 就是分手啊你還非要別人說出來,說出來不就愧疚了麼,這樣子你自己受不了吵架分了他還能自欺欺人一點不是他的原因他好心安理得說沒虧欠過你。 時拾歡 拒絕交流是冷暴力,相信您是有感覺的,他是真的很忙還是已經不愛了。感情,尤其是愛情是很複雜的事物,它令人著迷的地方就是我們明明知道事情原本的樣子,還願意...

怎麼看待男朋友不回訊息發朋友圈?

如果是一兩次也就算了,可能真的忘了去打遊戲什麼的。如果長期,一周以上的,你就得好好反省下這段感情,可以證明的是,你男朋友已經對你產生了一些微妙的感覺,或許覺得對你沒感覺了,對你沒愛了什麼之類的。這時候一定要盡早兩人坦白對話一次,最好面對面交談。談了之後的結果再說吧,反正我那會是意識的晚,掰掰了。 上...