<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      rabiitmq 消息丟失處理

      A:生產者弄丟了數據
      生產者將數據發送到rabbitmq的時候,可能在傳輸過程中因為網絡等問題而將數據弄丟了。
      B:rabbitmq自己丟了數據
      如果沒有開啟rabbitmq的持久化,那么rabbitmq一旦重啟,那么數據就丟了。所依必須開啟持久化將消息持久化到磁盤,這樣就算rabbitmq掛了,恢復之后會自動讀取之前存儲的數據,一般數據不會丟失。除非極其罕見的情況,rabbitmq還沒來得及持久化自己就掛了,這樣可能導致一部分數據丟失。
      C:消費端弄丟了數據
      主要是因為消費者消費時,剛消費到,還沒有處理,結果消費者就掛了,這樣你重啟之后,rabbitmq就認為你已經消費過了,然后就丟了數據。



      處理:

      A:生產者丟失消息
      ①:可以選擇使用rabbitmq提供是事物功能,就是生產者在發送數據之前開啟事物,然后發送消息,如果消息沒有成功被rabbitmq接收到,那么生產者會受到異常報錯,這時就可以回滾事物,然后嘗試重新發送;如果收到了消息,那么就可以提交事物。

        channel.txSelect();//開啟事物
        try{
            //發送消息
        }catch(Exection e){
            channel.txRollback();//回滾事物
            //重新提交
        }
      

      缺點:rabbitmq事物已開啟,就會變為同步阻塞操作,生產者會阻塞等待是否發送成功,太耗性能會造成吞吐量的下降。

      ②:可以開啟confirm模式。在生產者哪里設置開啟了confirm模式之后,每次寫的消息都會分配一個唯一的id,然后如何寫入了rabbitmq之中,rabbitmq會給你回傳一個ack消息,告訴你這個消息發送OK了;如果rabbitmq沒能處理這個消息,會回調你一個nack接口,告訴你這個消息失敗了,你可以進行重試。而且你可以結合這個機制知道自己在內存里維護每個消息的id,如果超過一定時間還沒接收到這個消息的回調,那么你可以進行重發。

          //開啟confirm
          channel.confirm();
          //發送成功回調
          public void ack(String messageId){
            
          }
      
          // 發送失敗回調
          public void nack(String messageId){
              //重發該消息
          }
      

      二者不同
      事務機制是同步的,你提交了一個事物之后會阻塞住,但是confirm機制是異步的,發送消息之后可以接著發送下一個消息,然后rabbitmq會回調告知成功與否。
      一般在生產者這塊避免丟失,都是用confirm機制。
      B:rabbitmq自己弄丟了數據
      設置消息持久化到磁盤。設置持久化有兩個步驟:
      ①創建queue的時候將其設置為持久化的,這樣就可以保證rabbitmq持久化queue的元數據,但是不會持久化queue里面的數據。
      ②發送消息的時候講消息的deliveryMode設置為2,這樣消息就會被設為持久化方式,此時rabbitmq就會將消息持久化到磁盤上。
      必須要同時開啟這兩個才可以。

      而且持久化可以跟生產的confirm機制配合起來,只有消息持久化到了磁盤之后,才會通知生產者ack,這樣就算是在持久化之前rabbitmq掛了,數據丟了,生產者收不到ack回調也會進行消息重發。
      C:消費者弄丟了數據
      使用rabbitmq提供的ack機制,首先關閉rabbitmq的自動ack,然后每次在確保處理完這個消息之后,在代碼里手動調用ack。這樣就可以避免消息還沒有處理完就ack。

      posted @ 2021-01-06 14:06  w'c's  閱讀(268)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 不卡一区二区国产在线| 国内精品久久毛片一区二区| 最近中文国语字幕在线播放| 福利一区二区1000| 国产成人精品无码免费看夜聊软件| 亚洲av一本二本三本| 国产精品伦理一区二区三| 欧美日本中文| 陆河县| 国产亚洲精品中文字幕| 欧美性大战xxxxx久久久| 国产玖玖视频| 久久天天躁狠狠躁夜夜不卡| 性夜黄a爽影免费看| 亚洲日本韩国欧美云霸高清| 在线看国产精品自拍内射| 免费无码无遮挡裸体视频在线观看| 国产xxxx做受视频| 视频一区二区不中文字幕| 91中文字幕在线一区| 97人妻熟女成人免费视频色戒| 夜夜夜高潮夜夜爽夜夜爰爰| 亚洲欧洲一区二区福利片| 7878成人国产在线观看| 亚洲男人天堂2018| av日韩在线一区二区三区| 日本熟妇色xxxxx日本免费看| 亚洲日韩性欧美中文字幕| 国产精品自在自线视频| 乱人伦中文字幕成人网站在线| 鲁甸县| 久久精品无码免费不卡| 亚洲人成电影网站 久久影视| 色婷婷综合久久久久中文一区二区 | 亚洲色大成网站WWW久久| 蜜桃成熟色综合久久av| 亚洲成a人片在线视频| 亚洲欧美日韩成人综合一区| 亚洲熟妇中文字幕五十路| 无码人妻精品一区二| 亚洲av影院一区二区三区|