Rabbitmq業務流程包含容錯排查

2021-09-28 08:32:29 字數 2154 閱讀 6316

一、 進入死信佇列(進入死信的三種方式)

**演示

- channel.basicreject(message.getmessageproperties().getdeliverytag(), true); // 拒絕訊息

- true 傳送給下乙個消費者

- false 誰都不接受,從佇列中刪除

fanoutexchange fanoutexchange=new fanoutexchange("alter");

fanoutexchange.setinternal(true);//設定為內部交換機,作為處理了非法的訊息,無法匹配到route key的訊息

- 為ae交換機繫結佇列 `alter_message`

繫結引數,設定沒有匹配route key的訊息傳送到ae交換機alternate-exchange

4.設定死信交換機dead_letter_exchange

死信交換機

模擬死信佇列

import pika

#認證,生產者

credentials = pika.plaincredentials('guest', 'guest')

connection = pika.blockingconnection(pika.connectionparameters('127.0.0.1',5672,'/',credentials))

#通過tcp協議獲取乙個連線

channel = connection.channel()

#宣告乙個對下列和賈環加

#channel.queue_declare(queue='hello')

#被hello接受了

channel.basic_publish(exchange='test',

routing_key='hello',

body='hello world!')

#傳送了乙個沒有匹配的訊息,匹配到了alter_message

channel.basic_publish(exchange='test',

routing_key='hello12312',

body='hello world!')

#模擬一條雖然能被匹配到,但是無法消費的訊息,然後被傳送到死信佇列訊息

channel.basic_publish(exchange='test',

routing_key='task_queue',

body='hello world!')

@bean

public connectionfactory connectionfactory() throws exception

/*** 接受訊息的監聽,這個監聽客戶交易流水的訊息

* 針對消費者配置

** @return

*/@bean

public ******messagelistenercontainer messagecontainer1(connectionfactory connectionfactory, paymentconsumeimpl transactionconsume)

業務流程管理

業務流程管理 課程背景 當今企業之間的競爭,實際上是商業模式及流程能力之間的競爭。一方面,流程是實現商業模式的核心載體,企業需要打造以客戶為導向的端到端流程。另一方面,流程是企業管理體系的關鍵模組,隨著企業的成長,需要不斷提公升流程成熟度,把例外變成例行 把經驗教訓總結到流程中去。隨著資訊時代的來臨...

變更業務流程

1 提交申請 sp於每月18日 前通過sims 向接入省公司提交新增業務申請。2 新增業務初評與測試 sp配合省公司於當月20日前 完成新增業務初評,並對 初評通過的業務完成測試 包括業務測試和計費測試 3 新增業務評估 省公司於當月22日前通過sims電子打分系統進行業務評估。接入省公司受理部門於...

業務流程引擎

一般的時候,我們都採用程式設計式開發,程式設計式開發的好處非常明顯 直接 高效 自由,當然其缺點也是有的,與其優點剛好相對,因為直接,所以有些變化都要進行 上的修改 因為高效,所以一旦出問題,導致的結果也比較嚴重,因為自由,所以帶來的修改風險也比較大。這也就是許多大的公司都在進行流程化開發的重要原因...