模拟实现文件服务器系统逻辑,具体需求如下:
• 有6台分布式服务器,1 - 4号为普通文字处理服务器,5号为图片文件处理服务器,6号为视频文件处理服务器。 
• 有三种对应类型的文件:文本文件,图片文件,视频文件。 
• 异步随机生成各种类型的文件,生成各类型文件的概率比例为: 
       视频文件:文本文件:图片文件  =  1 :6 :3。
• 文件处理所需时间有最大值和最小值,在该范围内随机设定每种文件处理所需的时间,文本文件所需时间为最小值。 
• 各类型文件在其对应服务器按顺序依次处理。 
• 当5号和6号服务器没有等待处理的文件的时候,这两个服务器可以处理文本文件,而一旦有对应的文件等待处理的时候,则优先处理对应的文件。 
• 随机生成文件产生时间间隔以及处理时间最大值和最小值自定,可以设置。 
• 不要求实现GUI,只考虑系统逻辑实现,可通过Log方式展现程序运行结果。 

解决方案 »

  1.   

    5 6 兩台處理文字檔時,如果遇到圖片或視頻資料,是(a) 處理完原文字檔才處理新檔,
    還是(b)直接中斷歸還工作處理新檔?這種工作分派其實沒有很複雜,首先每台伺服器有個虛擬排隊區
    方法一 輪流
    收到文字檔依序排給1~4,排滿了看5 6有沒有空,有就排給 5 6。遇到圖或視頻就排給 5 或 6。
    如果5 6上述的(b),則將手上原本工作丟回重新分配。方法二 等比重
    每台伺服器有個能力直,每個檔案也有簡單的分數(檔案大小),接著就計算每台伺服器比重,將檔案給最閒的伺服器。圖片及視頻基本上沒得選擇,遇到了就排給 5 6。方法三 權重
    將分數高的檔案給能力高的伺服器。分配的方法大致如上所述,對於5 6 的處理可以混排依收到順序,或插隊圖檔或視頻可以往前排。
    此外,要有一個工作協調者,記錄每台伺服器的工作狀態,並分配工作。以上是很粗略的描述,可以依實際情況做更彈性調配,甚至可以先寫模擬程式計算每種情況的時間,
    做最佳配置。