簡體   English   中英

多線程http客戶端和tomcat 7

[英]multithreaded http client and tomcat 7

我對如何在獨立的Java應用程序中處理http會話感到困惑。 詳細信息如下:

Java客戶端連接到3個tomcat 7 servlet。 當客戶端啟動時,它每3分鍾啟動2個調度線程/ downloader和uploader /輪詢2個servlet。 他們都檢索jsessionid cookie並將其存儲在各自類的私有字段中。 這會導致在tomcat中有2個會話在webapp的生命周期內被重用。 到現在為止還挺好。

使用線程“ WebDispather”類的多個實例,有一個第三服務/連接到第三servlet /,該類類似於上述線程,但這次是在私有靜態字段中檢索和存儲會話。 調度程序使用率很高,根據負載的不同,可能有多達150個實例同時運行。 分派器線程每秒鍾左右就會到達servlet。

將調度程序的sessionid字段設置為非靜態會為每個實例創建一個會話-不好。

將所有調度程序線程綁定到同一tomcat http會話有什么含義?

謝謝


編輯:盡管dispather線程綁定到相同的會話,會話本身不包含任何信息。 Servlet僅處理請求參數。 即調度員1:

本地主機/ messagecontrol?id = 123&state

調度程序線程2:localhost / messagecontrol?id = 123&state = finished

// Servlet處理並忘記id和狀態

據我所知,這意味着所有客戶端線程將共享相同的會話信息,如果有任何不希望共享的信息,這將是代碼中的錯誤。

如果您擔心創建的線程數(性能方面),請考慮在代碼中實現線程池

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM