簡體   English   中英

Java Socket客戶端模式

[英]Java Socket Client pattern

我的java應用程序必須將消息(多線程)發送到套接字服務器。 該應用程序每秒可以發送大約100-200條消息。

我想知道哪種方法更好?

  1. 打開單個客戶端套接字並通過此一個套接字從所有線程發送消息。 缺點:必須在連接失敗時處理重新連接邏輯,重新連接過程中可能會丟失很多消息。線程安全,阻塞?
  2. 為每個線程創建一個新的客戶端套接字連接,並在發送后關閉它。 缺點:即使關閉套接字,端口也會等到TIME_WAIT周期。

哪種更實用?

我建議3.:每個線程打開一個套接字,並重用線程(例如通過線程池)。 然后處理線程內部的重新連接,或者只是正確處理它並創建新的線程。 這樣您就可以避免阻塞和同步問題

每秒100-200條消息並不多。 我不會每次都重新連接,因為這很昂貴。 如果您重新使用連接,它會快得多。

如果您擔心丟失消息,可以一次發送一批消息,然后等待收到服務器的確認。 您仍然可以通過這種方式每秒發送數千封郵件。

暫無
暫無

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

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