2014-03-30 74 views
-1

有沒有一種方法可以在linux中爲某個特定端口設置超時?如何在linux中爲特定端口設置超時

我們已經爲短信銀行應用程序部署了tomcat,並且建立的連接沒有在端口9010上關閉,並且它們逐漸增加。所以在某個時候系統會變得很尷尬。當我們重新啓動tomcat時,所有建立的連接都被終止。那麼系統再次正常工作。

那麼無論如何殺死建立的連接設置端口9010超時?

提前appriciate任何幫助!

+0

你應該看看Tomcat的是如何處理的連接,它不是關於Linux。 –

+0

感謝您的回覆。在這個問題上tomcat級別的解決方案。我們目前所做的是在超過一定數量的連接後從腳本重新啓動tomcat – user3478625

回答

0

基於Tomcat綁定到端口9010這一事實,您可能在Tomcat前有一個代理(如Apache)(如果不這樣做,那麼在上線之前確實需要考慮您的體系結構)。

如果配置正確,代理服務器將連接池。默認情況下,Apache將允許每個客戶端的連接數高達Maxclients,這意味着您可以輕鬆使用所有Tomcat線程。

該代理應配置爲只允許n個連接,其中n是Tomcat中配置的線程數。

如果連接的源來自同一IP地址(或子網小),那麼你應該去看看代理配置

+0

實際上,短信銀行模塊連接到另一個運行tomcat的轉發模塊。問題在於短信銀行模塊和轉賬模塊之間的連接逐漸增多。有沒有在這個問題上的tomcat級別的解決方案?我們目前所做的是在超過一定數量的連接後從腳本重新啓動tomcat。一旦tomcat重新啓動,系統就會正常工作,因爲所有建立的連接都被終止。 – user3478625

+0

我認爲你需要檢查你的代碼庫和基礎設施。您可能在您的應用程序中啓用了連接池功能,但您尚未在任一服務上調整線程池。這可能意味着對您的短信應用程序的任何新請求都無法從游泳池獲得免費連接。您的代碼中可能還有一個錯誤,它在完成客戶端請求後沒有結束連接 - 這會留下阻塞的線程並打開TCP向前的TCP連接。 Tomcat執行程序中的'maxIdleTime'是唯一可能影響此行爲的屬性。檢查您的日誌文件並進行線程轉儲。 –

+0

如果我在tomcat.does的web.xml中設置了會話超時,那該怎麼辦呢? – user3478625

相關問題