假设我现在有40台服务器,用户上传的第一份文件我把它保存到服务器一,用户上传的第二份文件保存到服务器二……类推下下去,第41份文件保存到服务器一,如何实现这种功能?
还有一种想法,40台服务器哪一个空闲空间最大就保存到哪一台服务器。但是要判断空闲空间最大的是哪一台这个方法貌似很复杂……有什么方法是最高效速度最快的,能判断出这40台服务器最空闲空间最大的一台。

解决方案 »

  1.   

    实在没有办法,也只有用循环,就像一楼说的全局变量(还不知道行不行)。实际中,我是有40台转码服务器,每台同时处理两个,用redis来进行排队。这就存在很多问题,用户上传文件的大小和数量直接导致服务器转码的速度、完成时间。为了充分利用服务器资源,所以每上传一个文件时获取40台服务器redis队列,那个短就加入哪个。但是,这样每个文件就去获取40次redis的长度,然后还要进行比较计算,过程太繁了。用循环呢,又有可能让某些服务清闲某些又太累,唉~想不到什么好方法啊,苦啊
      

  2.   

    用lvs做心跳,转码状态做全局标记,比如记录到数据库。当转码服务器满运转的情况下不要发转码请求。排在待转码的队列里。
    上传也可以POST到虚Ip,用lvs或者F5做负载均衡,文件放nas共享存储。没有nas就比较麻烦了。。
      

  3.   

    楼上的,用lvs做心跳,这是什么意思啊?
      

  4.   

    心跳就是heartbeat,就是用来看哪台服务器比较闲的技术。主要用于负载均衡。