遊戲陪玩app開發,訊息可靠性的實現
執行流程
訊息確認機制-可靠抵達
#配置yml檔案 spring: rabbitmq: #開啟傳送單確認 publisher-confirms: true
//定製abbitTemplate@PostConstruct //MyRabbitConfig初始化完成後,執行這個方法public void initRabbitTemplate(){ // 伺服器收到訊息確認回撥 /* correlationData 訊息的唯一id ack 訊息是否成功收到 cause 失敗原因 */ rabbitTemplate.setConfirmCallback(((correlationData, ack, cause) -> { log.info("confirm---->correlationData{},-------->ack{},-------->cause{}",correlationData,ack,cause); }));}
#配置yml檔案 spring: rabbitmq: #開啟傳送端訊息抵達佇列確認 publisher-returns: true #只要抵達佇列,以非同步方式優先回撥這個returnconfirm template: mandatory: true
//定製abbitTemplate@PostConstruct //MyRabbitConfig初始化完成後,執行這個方法public void initRabbitTemplate(){ //設定訊息抵達queue的確認回撥 (訊息沒有投遞給指定佇列,才會觸發這個失敗回撥) /* message 投遞失敗的詳細資訊 replyCode 回覆的狀態碼 replyText 回覆的文字內容 exchange 這個訊息傳送給哪個交換機 routingKey 這個訊息用的哪個路由鍵 */ rabbitTemplate.setReturnCallback((message, replyCode, replyText, exchange, routingKey) -> { log.info("return---->message{},-->replyCode{},-->replyText{},-->exchange{},-->routingKey{}", message,replyCode,replyText,exchange,routingKey); });}
#配置yml檔案 spring: rabbitmq: #切換為手動ack listener: direct: acknowledge-mode: manual
/** * @author lp * @date 2020/8/9 15:05 */@Service @Slf4j @RabbitListener(queues = "demo.queue")public class DemoListener { @Autowired private DemoService service; @RabbitHandler public void listener(DemoEntity entity, Channel channel, Message message) throws IOException { log.info("-----------開始消費訊息----------"); try { //具體業務 service.doSomething(entity); //成功處理回覆acl channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); } catch (Exception e) { //失敗處理重新返回queue channel.basicReject(message.getMessageProperties().getDeliveryTag(), true); } }}
小結:
防止訊息重複
訊息積壓
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996194/viewspace-2846306/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 遊戲陪玩app原始碼的可靠訊息最終一致性方案的實現遊戲APP原始碼
- 遊戲陪玩APP遊戲APP
- 遊戲陪玩系統開發,音視訊混流的實現程式碼遊戲
- 遊戲陪玩app原始碼開發,常用的倒數計時功能如何實現?遊戲APP原始碼
- 遊戲陪玩app開發,前端實現一個輪詢需要如何做?遊戲APP前端
- 遊戲陪玩app開發中,Mysql的sql優化方法遊戲APPMySql優化
- 遊戲陪玩app開發,高併發系統如何設計?遊戲APP
- 如何在遊戲陪玩app原始碼中實現簡訊驗證碼登入?遊戲APP原始碼
- 遊戲陪玩系統開發,Java怎樣實現流合併?遊戲Java
- 遊戲陪玩平臺原始碼開發,依賴收集和觸發的實現遊戲原始碼
- 遊戲陪玩系統開發,日期時間選擇介面的實現遊戲
- 遊戲陪玩系統開發,架構設計的開閉原則是如何實現的?遊戲架構
- 測試遊戲陪玩app開發中的啟動效能,需要這樣做遊戲APP
- 遊戲陪玩系統原始碼開發,如何實現圖片和動畫的優化?遊戲原始碼動畫優化
- 提高遊戲陪玩app開發水準,熟練掌握正規表示式遊戲APP
- 遊戲陪玩app原始碼開發,啟動速度優化與監控遊戲APP原始碼優化
- 如何利用限流解決遊戲陪玩app開發中的重複提交問題?遊戲APP
- 什麼是遊戲陪玩app原始碼開發的過度設計,如何避免?遊戲APP原始碼
- 遊戲陪玩原始碼的登入方式,簡訊驗證碼登入的實現遊戲原始碼
- 遊戲陪玩平臺原始碼開發,聊天室內的禮物連擊效果的實現遊戲原始碼
- 透過websocket,實現遊戲陪玩系統的聊天室Web遊戲
- 要想實現遊戲陪玩app原始碼的效能測試與調優,應該怎麼做?遊戲APP原始碼
- RabbitMQ的訊息可靠性(五)MQ
- 遊戲陪玩,仍在途中遊戲
- 如何在遊戲陪玩系統原始碼中實現“刮刮樂”效果?遊戲原始碼
- 如何實現遊戲陪玩系統原始碼前端效能監控?遊戲原始碼前端
- 遊戲陪玩原始碼的移動端適配,應該如何實現?遊戲原始碼
- 如何實現遊戲陪玩系統中語音的錄製與播放?遊戲
- 遊戲陪玩原始碼前端開發,不容忽視的五個要點遊戲原始碼前端
- 在遊戲陪玩原始碼開發中,兩種清空陣列的方式遊戲原始碼陣列
- 如何開發陪玩系統原始碼的列表頁面,相關實現程式碼原始碼
- 陪玩系統原始碼實現音訊編碼的相關步驟原始碼音訊
- 遊戲陪玩系統開發,業務程式碼判斷生產/開發環境的方式遊戲開發環境
- 在遊戲陪玩系統開發中,如何進行效能測試?遊戲
- 陪玩系統原始碼開發,H5頁面中呼叫支付功能的實現原始碼H5
- 使用 NSProxy 實現訊息轉發
- 遊戲陪玩原始碼開發,正確認識節流和防抖遊戲原始碼
- 遊戲陪玩系統實現自適應負載均衡演算法的方式遊戲負載演算法