訊息佇列面試題

2021-09-28 04:40:20 字數 582 閱讀 5061

1.訊息丟失,分為三種情況,分別在生產者,mq,消費者上發生

在springcloud中整合amqp,在配置檔案中開啟confirm訊息確認

spring.rabbitmq.publisher-confirms = true

生產者實現confirm介面

public class customconfirmandreturncallback implements rabbittemplate.confirmcallback, rabbittemplate.returncallback 

}/**

* 訊息從交換機成功到達佇列,則returnedmessage方法不會執行;

* 訊息從交換機未能成功到達佇列,則returnedmessage方法會執行;

*/@override

public void returnedmessage(message message, int replycode, string replytext, string exchange, string routingkey)

消費者獲得訊息,還未使用就掛掉,mq以為已經消費

redis的訊息佇列(面試題)

介紹 redis的佇列 使用rpush lpush操作入佇列,使用rpop lpop出佇列。客戶端是通過列隊的pop來獲取訊息,然後進行處理,處理完再接著獲取訊息。如此迴圈。這就是客戶端的生命週期。問題一 佇列空了會有什麼影響 如果佇列空了,客戶端會一直pop佇列,這就造成了空輪詢。空輪詢不但提高了...

面試題 為什麼要使用訊息佇列?

其實面試官主要是想看看 為什麼使用訊息佇列?其實就是想知道是因為什麼原因引入的mq技術,為了解決哪些問題。面試官期望的回答就是,當初你們公司有乙個什麼樣的業務場景,這個場景有什麼樣的技術挑戰,不用mq可能會有麻煩,現在引入mq帶來了哪些好處。通過mq的好處是 解耦,非同步,削峰。解耦這個場景通常是發...

面試題 如何保證訊息佇列的高可用

如何保證訊息佇列的高可用?圍繞著mq進行面試,肯定會聊到高可用相關的話題,因為引入了mq中介軟體導致了系統的可用性降低。mq所帶來的一些坑,在實際專案中是如何解決的。如果回答只是單純的在mq,並沒有考慮過各種有可能出現的問題,那面試的印象分就會迅速降低。是讓你結合專案說一說在實際的生產環境中如何實現...