我想对蚊子进行压力测试,所以我创建了一些代码,如下所示
for (int i = 0; i < 800; i++) {
final int j = i;
Thread t = new Thread(new Runnable() {
@Override
public void run() {
System.out.println(j + " : ************");
try {
MqttClient client = new MqttClient("tcp://192.168.88.203", SERVER_CLIENTID_PREFIX + j);
client.connect();
MqttMessage message = new MqttMessage((j + ":me").getBytes());
message.setQos(2);
client.publish(TOPIC_PREFIX + j, message);
} catch (MqttSecurityException e) {
e.printStackTrace();
} catch (MqttException e) {
e.printStackTrace();
}
}
});
t.start();
}
但是,我遇到了一些错误,例如EOFException
在运行期间,某些客户端断开连接。
我想知道一台mosquitto服务器可以同时有多少个客户端发布消息,以及如何进行压力测试。谢谢!
详细异常是:
Connection lost (32109) - java.io.EOFException
at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:162)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.EOFException
at java.io.DataInputStream.readByte(DataInputStream.java:250)
at org.eclipse.paho.client.mqttv3.internal.wire.MqttInputStream.readMqttWireMessage(MqttInputStream.java:51)
at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:121)
... 1 more
我从 mosquitto 服务器找到了一些日志:
1383736170: Socket read error on client Server-82, disconnecting.
请帮助我,谢谢!
我使用与上面类似的代码得到了完全相同的错误。我发现将 QOS 更改为 0 可以解决问题。
message.setQos(0);
[编辑] 经过进一步挖掘,我发现 RabbitMQ 的 MQTT 插件不支持 2 的 QOS。http://www.rabbitmq.com/mqtt.html http://www.rabbitmq.com/mqtt.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)