Web服務性能測試:Node完勝Java
簡介
我最近做了一些簡單的關于內存的Web Service性能測試。我使用Java(REST + SOAP)和Node.js(REST)將一些接口功能緩存起來。跟期望的一樣,Node應用的性能遠遠超出Java。(響應時間至少快1倍以上)。
譯者注* NodeJS跟許多其他單線程語言一樣,對內存并不貪婪,因為沒有關于線程的內存開銷,內存占用不會隨著連接數的增長而增長,尤其在剔除掉讀寫文件/數 據庫等異步操作后,完全基于內存的NodeJS將有更顯著的性能提升,從某種意義上來說基于內存的nodejs服務所能支持的最大并發數將僅受限于帶寬和 CPU的處理能力。
可參見: 性能測評:Ngix_Lua, Node.JS Python三者性能相當,均比php快近一倍, PayPal為什么從Java遷移到Node.js
緩存應用
圖1:關于緩存應用的原理圖。緩存支持插入,獲取,刪除鍵/值對
圖2:關于應用更詳細的物理圖
這里使用了另外一種形式的REST,cache操作通過HTTP verbs來完成(Insert = PUT, Fetch = GET, Remove = DELETE)。數據刷新通過使用timeouts(Node)和scheduled threads(Java)來完成。緩存冗余是通過服務器間的REST調用來實現。(通過PUT/DELETE)
對于Java SOAP的擴展,cache操作通過經典的HTTP POST SOAP包來實現。
應用層結構
圖3:基于Cache的Java REST組織結構圖。Apache Tomcat + Jersey (servlet)在這一層。
圖4:基于Cache的Java SOAP組織結構圖。Apache Tomcat + Axis2 (servlet)在這一層。
圖5:為Node應用。僅初始化了一個worker。
測試
圖6: 為我測試時使用的環境
posted on 2014-03-31 11:07 順其自然EVO 閱讀(366) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄 、web 前端性能測試