2016-04-07 99 views
0

我正在寫一個小程序來抓取從RabbitMQ隊列收到的所有網址。我已經測試了大約6000個URL,並且在處理了其中的一半之後,客戶端無異常停止,所有到rabbitmq服務器的連接都將丟失。我也查了日誌,並有像RabbitMq,客戶端關閉TCP連接突然

=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 

一些事情我使用這個連接工廠設置:

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); 

你對此的一些想法?問候!

回答

1

你必須配置RabbitMQ和你的OS來處理更多的連接。

閱讀:https://www.rabbitmq.com/networking.html

二郎山VM I/O線程池Erlang運行時使用的線程的執行 I/O操作異步池。池的大小爲 ,通過+ A VM命令行標誌配置,例如, + A 128.我們強烈建議 覆蓋使用 RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS環境變量的標誌:

RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS = 「+ 128」

而且這樣的:https://www.rabbitmq.com/production-checklist.html

打開的文件句柄限制操作系統限制同時打開的文件句柄(包括網絡套接字)的最大數量爲 。使 確信您已將限制設置得足夠高,以允許併發連接和隊列的預期編號爲 。

+0

最後,這解決了我的問題!謝謝 – innovatism