作為一名mq的初學者,在學習之初有很多疑問,本文章主要記錄作者在學習過程中對於一些問題的記錄。
在我看來mq可以看作是乙個註冊中心,有訊息的提供者和消費者,提供者產生訊息後將訊息新增至「註冊中心」,然後等待消費者到「註冊中心」進行消費。這個過程中有幾次通訊行為,當涉及到通訊問題時不免要考慮到通訊過程中的通訊中斷帶來的訊息丟失問題,造成訊息丟失的條件有很多,今天主要記錄一種情況,我們都知道,在mq中訊息只允許被消費一次,不可重複消費,對於mq如何實現訊息不被重複消費的,網上有很多部落格寫的很好,作者的疑問主要是在當消費者消費一條訊息後,會返回一條確認資訊,來表明此條訊息已被消費,mq便可以將訊息標記為已消費。下面討論一種情況,就是當消費者消費後,在返回確認訊息過程中,訊息丟失(不管是因為什麼原因),這樣mq接收不到消費者返回的確認訊息,便會認為此條訊息還未被消費,這樣便可以被消費者再次消費,這種情況就是重複消費。這種情況作者感到疑惑,mq中是否有該問題的應對方法,如果有是如何實現的?
對於上述的問題,作者展開想象,如果消費者在返回確認訊息時攜帶乙個有序數列,比如說123456這樣的順序,在mq進行確認時設定乙個「檢查點」,用來檢查是否與之前確認的訊息是按照順序來的,例如在消費2時,傳送的確認訊息攜帶了2,但是訊息丟失掉了,那麼mq接收的訊息就沒有2,接收到的就是下一條3,檢查點檢查到訊息沒有按照順序,說明訊息丟失了,對於如何補救這裡不做想象,只考慮訊息丟失情況的發現反饋。不知道這樣的方法是否可行,希望在學習過程中能有深入了解,也希望各位大佬不吝賜教
開發中遇到的問題記錄
jquery相關問題 1.html 方法無法獲取到input中的value tomcat相關問題 1.web.xml中 do配置導致tomcat無法啟動 intellij idea中怪異出錯bug,tomcat中和main中md5加密不一致 在tomcat下,getbytes eclipse按utf...
mysql中碰到的問題記錄
size large 2012 08 16 需求 乙個賬戶對應多張卡,現在連線賬戶和卡表,要求每個賬戶隨意取一條記錄做對應,資料量在千萬級。sql rank over partition by account id order by card no as rk,最後取rk 1的記錄 說明 按賬戶id...
《搬水果》中的問題記錄
刷到一道挺簡單的題目,但是有問題需要記錄一下,搬水果 題目 輸入 每組資料輸入包括兩行,第一行是乙個整數 n 1 n 10000 表示水果的種類數。第二行包含 n 個整數,用空格分隔,第 i 個整數 1 ai 1000 是第 i 種水果的數目。輸出 對於每組輸入,輸出乙個整數並換行,這個值也就是最小...