2016-12-06 186 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 –

回答