亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Spring RabbitMQ死信機(jī)制原理實(shí)例詳解

 更新時(shí)間:2020年03月02日 14:53:24   作者:白眉大蝦  
這篇文章主要介紹了Spring RabbitMQ死信機(jī)制原理實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

死信隊(duì)列:沒有被及時(shí)消費(fèi)的消息存放的隊(duì)列,消息沒有被及時(shí)消費(fèi)有以下幾點(diǎn)原因:

  • 1.有消息被拒絕(basic.reject/ basic.nack)并且requeue=false
  • 2.隊(duì)列達(dá)到最大長(zhǎng)度
  • 3.消息TTL過期

采用死信機(jī)制的好處是可以提高系統(tǒng)的穩(wěn)定性,當(dāng)消息消費(fèi)失敗后,消息進(jìn)入死信隊(duì)列,可以對(duì)消息進(jìn)行補(bǔ)償,可以達(dá)到最終一致性的目標(biāo).

具體例子如下:

@Bean
public Queue deadQueue() {
  return new Queue(DEAD_QUEUE_NAME, true);
}

@Bean
public DirectExchange deadExchange() {
  return new DirectExchange(DEAD_EXCHANGE_NAME);
}

@Bean
public Binding bindingDeadExchange(Queue deadQueue, DirectExchange deadExchange) {
  return BindingBuilder.bind(deadQueue).to(deadExchange).with(DEAD_ROUTING_KEY);
}

@Bean
Queue directQueue() {
  Map<String, Object> args = new HashMap<>(2);
  args.put("x-dead-letter-exchange", DEAD_EXCHANGE_NAME);
  args.put("x-dead-letter-routing-key", DEAD_ROUTING_KEY);
  return new Queue(DIRECT_QUEUE_NAME, true, false, false, args);
}

只要簡(jiǎn)易的配置,這樣消費(fèi)失敗的消息就能被收集起來,后續(xù)我們可以實(shí)現(xiàn)一個(gè)死信消費(fèi)者,將死信消息進(jìn)行補(bǔ)償。

如果是想手動(dòng)補(bǔ)償,可以將死信消息存入數(shù)據(jù)庫(kù),做一個(gè)管理頁(yè)面去做補(bǔ)償.

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論