【发布时间】:2016-11-28 12:32:06
【问题描述】:
我正在使用带有 paho.mqttv3 协议的 RabbitMq 3.6.6 我的简单代码,如
int max_connections =400000;
String broker = "tcp://xxx.xxx.x.xx:1883";
String clientId = "Publisher";
String content="Hii";
int qos=1;
String topic="Cluster";
MemoryPersistence persistence = new MemoryPersistence();
MqttClient sampleClient[] = new MqttClient[max_connections];
Thread t[] = new Thread[max_connections];
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(true);
for (int i = 0; i < max_connections; i++) {
try {
sampleClient[i] = new MqttClient(broker, clientId + "" + i, persistence);
sampleClient[i].connect(connOpts);
} catch (MqttException ex) {
ex.printStackTrace();
return;
}
}
我遇到了异常:
线程“MQTT Con:Publisher2919”中的异常 java.lang.OutOfMemoryError:无法创建新的本地线程 java.lang.Thread.start0(本机方法)在 java.lang.Thread.start(Thread.java:714) 在 org.eclipse.paho.client.mqttv3.internal.CommsSender.start(CommsSender.java:60) 在 org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:654) 在 java.lang.Thread.run(Thread.java:745)
我的系统 RAM 为 8 GB,带有 Corei5 处理器。
我也在 Windows PC 中尝试过同样的错误,但它高达 7k 连接
so any OS level Configuration in Ubuntu to make more Connection?
【问题讨论】:
标签: java windows multithreading rabbitmq mqtt