2016-12-06 279 views
0

我正在測試接收Job對象的服務器應用程序,爲此我創建了一個虛擬客戶端,它將盡可能多的Job對象發送給我的服務器應用程序,爲此我創建了一個Timer類,如下所示,它將Job對象定期發送到服務器。例如每秒2000個對象。但是當我每秒超過2000個工作時,我的客戶變慢了。向服務器發送大量請求

是否有任何其他方式發送大量和固定數量的作業到服務器?

如果我創建了很多定時器實例,那麼我必須同步套接字,這又讓事情變得緩慢。

有沒有更好的解決方案,這個問題的幫助下,我可以發送成千上萬的工作,而不會讓事情變慢?

這裏給出的代碼是Job等的骨架,我只是想知道其他的選擇。

package comeOn; 

import java.awt.event.ActionListener; 
import javax.swing.Timer; 
import java.io.*; 
import java.awt.event.ActionEvent; 
public class LoadGenerator extends Timer implements ActionListener{ 
    ObjectOutputStream outStream=null; 
    int rndNumber; 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

    } 
public LoadGenerator(int interval, ObjectOutputStream outStream,int rndNumber){ 
    super(interval,null); 
    this.outStream=outStream; 
    this.rndNumber=rndNumber; 
    addActionListener(this); 
    //this.setInitialDelay(1000);//start this timer afer 1 second. 
} 


@Override 
public void actionPerformed(ActionEvent e){ 
    try { 
     for(int i=1;i<=rndNumber;i++){ 
      Job job=new Job(100); 
       outStream.writeObject(job); 
       outStream.reset(); 
       outStream.flush(); 



      } 

     } 
    catch(Exception ex){} 
} 
class Job{ 
    int amount; 
    Job(int amount){ 
     this.amount=amount; 
    } 
} 
} 
+1

答案你爲什麼不使用爲負載測試建立了一個工具:http://jmeter.apache.org/? – tavi

+0

Jmeter不能發送成千上萬的作業到我的服務器它使事情變得太慢PLZ閱讀http://stackoverflow.com/questions/3528765/jmeter-max-thread-limit –

回答