2017-09-28 53 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的 那么机会会得到一个从不重复的数字 –

相关问题