2016-04-07 17 views
0

Ich schreibe ein kleines Programm zum Crawlen aller URLs aus einer RabbitMQ-Warteschlange. Ich habe mit ungefähr 6000 URLs getestet und nachdem eine Hälfte von ihnen verarbeitet wurde, stoppt der Client ohne eine Ausnahme, alle Verbindungen zu dem Rabbitmq-Server sind verloren. Ich habe auch das Protokoll überprüft und einige etwas haben wieRabbitMq, Client schließen TCP-Verbindung abrupt

=WARNING REPORT==== 7-Apr-2016::10:40:50 === 
closing AMQP connection <0.32373.9> (192.168.55.1:55716 -> 192.168.55.100:5672): 
connection_closed_abruptly 

Ich verwende diese Verbindung Werkseinstellung:

ConnectionFactory factory = new ConnectionFactory(); 
     factory.setHost("192.168.55.100"); 
     factory.setUsername(params.username); 
     factory.setPassword(params.password); 
     factory.setVirtualHost(params.virtualHost); 
     factory.setAutomaticRecoveryEnabled(true); 
     factory.setRequestedHeartbeat(2); 

Hast du Ideen dazu haben? Grüße!

Antwort

1

Sie müssen RabbitMQ und Ihr Betriebssystem konfigurieren, um mehr Verbindungen zu handhaben.

Lesen Sie dazu: https://www.rabbitmq.com/networking.html

Erlang VM I/O-Thread Pool Erlang Laufzeit verwendet einen Pool von Threads für Durchführung I/O-Operationen asynchron. Die Größe des Pools ist , konfiguriert über das + A VM-Befehlszeilenflag, z. A + 128. Wir hoch empfehlen die Flagge Überschreiben der RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS Umgebungsvariable:

RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS = "+ A 128"

und auch dies: https://www.rabbitmq.com/production-checklist.html

Open File Griffe Grenze Betriebssysteme begrenzen maximale Anzahl von gleichzeitig öffnen Dateigriffe, die Netzwerk-Sockets enthält. Machen Sie sicher, dass Sie Limits hoch genug gesetzt haben, um die erwartete Anzahl von gleichzeitigen Verbindungen und Warteschlangen zu ermöglichen.

+0

Endlich, das löst mein Problem! Vielen Dank – innovatism

Verwandte Themen