首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

資料報方案的隱憂:CPU 佔用與防火牆穿透難題

     編輯:Java 相關知識

CPU 佔用問題

伺服器端持續阻塞於 DatagramSocket.receive(),在 Java 1.1 早期實作中會導致 CPU 空轉(忙碌等待)。雖可用 nice 降低優先權,但在高負載伺服器上仍屬隱憂。需留意 JVM 實作差異,必要時改用 NIO 或執行緒睡眠策略。

防火牆阻擋 UDP 通訊

企業防火牆通常僅開放 HTTP 埠(80),UDP 埠(如範例的 8080)會被視為可疑掃描而封鎖。若客戶端在防火牆後方,資料報方案將完全失效。這迫使開發者尋找基於 HTTP/TCP 80 埠的替代方案。

出路:Servlet 技術

Sun 提出 Servlet(伺服器端小程式),運行於 Web 伺服器內部,透過標準 HTTP 80 埠通訊,天然穿透防火牆。Servlet API 無 GUI 功能,專注請求處理,極適合此類後台服務。Sun 提供低成本 Servlet 專用伺服器,並推動主流 Web 伺服器廠商支援。這讓 Java 開發者得以在伺服器端持續使用 Java,無需轉向 C/Perl。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved