文章詳情頁
java - 消息隊列處理臨界時間問題
瀏覽:122日期:2023-11-28 08:05:45
問題描述
現在從消息隊列接收消息,然后寫入文件。每小時寫一個,是批量寫入。但是出現個問題,每次寫的新文件開頭都有一些應該屬于上個小時得數據,消息體有time。如何保證所有消息都嚴格寫入自己小時得文件。現在想到的是將批量寫入的buffer按小時區分,Map<hour,buffer>,一個buffer對應一個小時,以buffer 對應的小時字段生成文件名,這樣就保證每個buffer 里的數據都屬于自己的文件。還有其他更好的方法嗎?
問題解答
回答1:文件在小時整點生成,每個消息都帶上各自的時間戳,匹配寫
回答2:感覺你這個問題可能有以下幾個原因造成的:
producer重復發送了消息
mq重復發送了消息給consumer
前一小時consumer沒有告知mq已經消費消息,導致后一個小時mq又發送了消息
參考資料:
duplicated-messages-on-activemq
avoiding-duplicated-messages-on-jms-activemq
duplicate-detection
標簽:
java
相關文章:
1. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????2. 在應用配置文件 app.php 中找不到’route_check_cache’配置項3. html按鍵開關如何提交我想需要的值到數據庫4. html5 - 在微信上掃二維碼看到有趣的h5頁面,怎樣才可以看到它的代碼呢?5. javascript - ueditor 百度富文本編輯器6. css3 - 怎樣用flew布局成 左邊邊兩列 右邊三列的布局?7. vue.js - android環境下在vue中引入vux.js 報錯。8. objective-c - 項目未上線,qq分享第三方登錄,讓上傳appStore ID 怎么搞9. android - 接入微信安卓分享會多一個空白頁10. python - 在pyqt中做微信的機器人,要在表格中顯示微信好友的名字,卻顯示不出來,怎么解決?
排行榜
