java - 訊息佇列處理臨界時間問題
phpcn_u1582
phpcn_u1582 2017-05-17 10:08:07
0
2
508

現在從訊息佇列接收訊息,然後寫入檔案。每小時寫一個,是大量寫入。但是出現個問題,每次寫的新文件開頭都有一些應該屬於上小時得數據,消息體有time。如何保證所有訊息都嚴格寫入自己小時得文件。現在想到的是將批次寫入的buffer按小時區分,Map,一個buffer對應一個小時,以buffer 對應的小時字段產生文件名,這樣就保證每個buffer 裡的數據都屬於自己的文件。還有其他更好的方法嗎?

phpcn_u1582
phpcn_u1582

全部回覆 (2)
黄舟

檔案在小時整點生成,每個訊息都帶著各自的時間戳,匹配寫

    我想大声告诉你

    感覺你這個問題可能有以下幾個原因造成的:

    1. producer重複發送了訊息

    2. mq重複發送了訊息給consumer

    3. 前一小時consumer沒有告知mq已經消費訊息,導致後一個小時mq又發送了訊息

    參考資料:

    1. duplicated-messages-on-activemq

    2. avoiding-duplicated-messages-on-jms-activemq

    3. duplicate-detection

      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!