2017-09-28 56 views
1

對不起我的英文不好。 有一個很大的風暴集羣,工作人員總是同時創建一些文件,問題是我不想重複這個文件名。 我的老闆讓我用格式'timestamp-random-othername'創建一個文件名,時間戳是自1970-1-1 00:00:00以來的一個數字,隨機數是從00000到99999的五位數。大約有一個數千名工作人員正在運行......並在不同的機器上運行我正在尋找一種使時間戳相同時隨機數不同的方法。STORM:當許多worker同時創建文件時如何命名文件?

回答

1

爲了確保您需要或者

  • 使用共享資源,如共享目錄,或消息或數據網格的獨特性。
  • 使其極不可能,例如,使用UUID。
  • 給每個工人一個唯一的ID並在文件名中使用它。
+1

,一類螺栓有其獨特的身份證,也許它的作品,你的第三種方式,謝謝.. –

0

,你可以嘗試使用當前的系統毫秒&隨機數,
這樣的: System.currentTimeMillis的()+的String.format( 「%05D」,random.nextInt(99999))在風暴

+0

雖然通常是隨機的,如果你有相同的毫秒數以千計將有重複。 –

+0

毫秒少複製 當用戶編輯 1你會得到一個NUM 2做增量方法 3下一個用戶,如果你忠實地編輯在同一時間一個文件,你可以把基地NUM在Redis的 那麼機會會得到一個從不重複的數字 –

相關問題