1. 程式人生 > 其它 >RabbitMQ 訊息實現過程+事務+訊息確認

RabbitMQ 訊息實現過程+事務+訊息確認

服務端(生產者) 1、引用 rabbitmq 包 2、建立連線工廠 connectionfactory 3、建立 頻道 createchannel 4、在頻道中 繫結訊息佇列 5、釋出basicpubilsh 訊息   服務端和rabbitmq 的事務(多條訊息傳送--必須保證全部成功) txSelect() 開啟事務 txCommit 提交事務 txrollback 回滾   服務端和rabbitmq 進行訊息確認(防止rabbitmq 故障) channel.confirmSelect() 開啟訊息確認 channel.WaitForConfirms() 接收rabbit 的反饋訊息 bool 是否成功 channel.WaitForConfirmOrDie() 無返回值,成功在此方法後繼續執行邏輯           客戶端(消費者) 1、引用 rabbitmq 包 2、建立連線工廠 connectionfactory 3、建立 頻道 createchannel 4、在頻道中 繫結訊息佇列 5、定義Consumer 繫結channel,consumer.Received+=(model,ea)=>{接受訊息(二進位制)} 6、消費basicConsume訊息     rabbitmq 和消費者的訊息確認
1、自動確認回執 channel.BasicConsume(queue:"hello",autock:false,consume:consumer) 2、非自動確認(解決,訊息接受成功,消費者內部執行失敗) 如果發生異常 channel.BasicReject 拒絕--通知rabbitmq 讓其他消費者消費,rabbitmq 不再給當前消費者 釋出訊息 未發生異常 channel.BasicAck主動刪除 rabbitmq 裡的訊息 channel.BasicConsume(queue:"hello",autock:true,consume:consumer)