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;
}
}
}
答案你为什么不使用为负载测试建立了一个工具:http://jmeter.apache.org/? – tavi
Jmeter不能发送成千上万的作业到我的服务器它使事情变得太慢PLZ阅读http://stackoverflow.com/questions/3528765/jmeter-max-thread-limit –