FastDFS生成文件名问题

发布于 2022-09-08 08:40:14 字数 1620 浏览 14 评论 6

可以问一下这个文件名的生成方式吗?
是根据原文件名hash得出的?
重复的几率大不大?如果生成的文件名重复了是否就存储失败呢?

还有就是在大批量操作小文件时经常出现如下异常:

似乎是socket没有及时释放?有人遇到过这个问题吗?
java.net.SocketException: No buffer space available (maximum connections reached?): connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:529)
        at org.csource.fastdfs.ClientGlobal.getSocket(ClientGlobal.java:107)
        at org.csource.fastdfs.StorageServer.<init>(StorageServer.java:33)
        at org.csource.fastdfs.TrackerClient.getUpdateStorage(TrackerClient.java:352)
        at org.csource.fastdfs.StorageClient.newUpdatableStorageConnection(StorageClient.java:1059)
        at org.csource.fastdfs.StorageClient.delete_file(StorageClient.java:55
        at org.csource.fastdfs.StorageClient1.delete_file1(StorageClient1.java:295)

我用的是java客户端;
谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

独木成林 2022-09-19 03:28:11

包括源storage server ip地址?那我机器迁个机房怎么办?
IP八成是要变啊。。。

怪我鬧 2022-09-18 13:17:30

happy_fish100 发表于 2011-01-26 12:38
回复 1# pealdoy

生成的文件名中,包含了创建时间戳、文件大小、源storage server ip地址、文件内容crc ...

请教版主,是怎么将创建时间戳、文件大小、源storage server ip地址……信息包含到文件名中的。怎么一个过程。

你如我软肋 2022-09-16 06:40:54

本帖最后由 payend 于 2012-12-05 12:32 编辑

这个和jvm没有什么关系。
主要还是因为客户端端口被占用满了,无法获取到新的端口。在最新的fastdfs_client_v1.24.jar依然可以出现这个问题。
调整time_wait回收时间也许可以解决这个问题。
  TCP    192.168.1.100:65508   192.168.1.150:23000     TIME_WAIT       0
  TCP    192.168.1.100:65510   192.168.1.150:23000     TIME_WAIT       0
  TCP    192.168.1.100:65513   192.168.1.150:23000     TIME_WAIT       0
  TCP    192.168.1.100:65515   192.168.1.150:23000     TIME_WAIT       0
  TCP    192.168.1.100:65518   192.168.1.150:23000     TIME_WAIT       0
  TCP    192.168.1.100:65519   192.168.1.150:23000     TIME_WAIT       0
  TCP    192.168.1.100:65521   192.168.1.150:23000     TIME_WAIT       0
  TCP    192.168.1.100:65523   192.168.1.150:23000     TIME_WAIT       0
  TCP    192.168.1.100:65525   192.168.1.150:23000     TIME_WAIT       0
  TCP    192.168.1.100:65529   192.168.1.150:23000     TIME_WAIT       0
  TCP    192.168.1.100:65530   192.168.1.150:23000     TIME_WAIT       0
  TCP    192.168.1.100:65531   192.168.1.150:23000     TIME_WAIT       0
  TCP    192.168.1.100:65533   192.168.1.150:23000     TIME_WAIT       0
  TCP    192.168.1.100:65535   192.168.1.150:23000     TIME_WAIT       0

和我恋爱吧 2022-09-11 02:42:36

本帖最后由 zx4866123 于 2012-09-12 09:46 编辑

回复 2# happy_fish100

膜拜!

   

巨坚强 2022-09-10 23:12:11

回复 2# happy_fish100

    谢谢回复。

异常确实是压力测试的时候出现的。

吻风 2022-09-10 03:44:39

本帖最后由 happy_fish100 于 2011-01-26 12:39 编辑

回复 1# pealdoy

生成的文件名中,包含了创建时间戳、文件大小、源storage server ip地址、文件内容crc32检验码,当文件小于2GB时,还会包含一个随机数。
代码中会循环10次,判断新生成的文件名是否已存在。
所以,当文件小于2GB时,文件重名的概率,非常非常低,重名的问题已经完全避免掉了。

出现这个异常情况,是在压力测试的情况下么?
如果是在压力测试的情况,那可以忽略。这个和java的垃圾回收(包括资源回收)机制有关。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文