摘要:大家都知道是另一家遷移到平臺的大型公司,的這篇博文解釋了為什么從遷移出來的原因開發效率提高一倍個人用更少的時間干了個人的活,性能提高一倍,代碼量減少文件減少。性能性能是一個非常有意思和具有爭議性的話題。對于來說這是一個另人激動的時刻。
大家都知道 PayPal 是另一家遷移到 Node.js 平臺的大型公司,Jeff Harrell 的這篇博文 Node.js at PayPal 解釋了為什么從Java遷移出來的原因:開發效率提高一倍(2個人用更少的時間干了5個人的活),性能提高一倍,代碼量減少33%, 文件減少40%。
(小編:個人認為深層次原因是 Java 正在越來越走向封閉,而且變得越來越復雜而且 oracle 正在對 Java 收費,參見:Oracle 計劃發布收費版 JVM,這促使了越來越多的公司加入了去Java化的隊伍)
外面有很多人說PayPal正在遷移到node.js平臺。我很高興地在這里宣布,傳言是真的,我們正在從Java遷移至node.js。
由于歷史原因,我們的工程師一直分為兩撥人,一撥在瀏覽器上寫代碼(HTML,CSS,JavaScript);另一撥用 Java 寫應用層的代碼。想象一下,一個寫 HTML 的不得不去叫一個寫 Java 將 A/B 兩個頁面鏈接到一起嗎?我們正在這樣干,我們稱這樣的人為全端工程師,那些即可以設計精美界面和服務器后臺的那些人。現在前后端已經沒有界限了,這曾經是阻礙PayPal發現的一個很大的瓶頸。
Node.js 幫助我們將前、后端合二為一,現在我們一個全端團隊即可解決用戶的所有問題。
早期采納像其他人一樣,我們剛開始使用 node.js 做了一些 demo 用的原型程序。跟很多人一樣,她表現出來的超高性能,讓我們最終決定把她放到線上去。
我們最初使用 express 來路由請求,nconf 用來配置,grunt 用來創建 tasks。Express 非常普及,但是我們發現 Express 在多個團隊協作時表現出的可伸縮性不足,它并不適合所有場合。Expres 非常靈活,但在大型團隊開發上的可擴展性不佳。最終我們的隊員基于原生的node.js,并創建了Karken.js;她并不是一個框架,更像是一個規范,但相對于 express,她更適合大型團隊的擴展。我們希望我們的工程師專注他們的應用,而不是專注他們的運行環境。
我們已經在內部使用 kraken.js 好幾個月了(我們馬上會把他開源的!)我們的工程師非常渴望這個內部框架能盡快上線。
(小編:預測 karken.js 即將是,另一個超火的后端框架,火熱程度參考 twitter 的 bootstrap )
將 node.js 布署到線上我們第一個采用 nodejs 的產品不是一個小的應用;是我們的瀏覽量最多的用戶首頁。我們希望步子邁得大一點,但是我們清楚知道其中的風險,所以我們同時還并行地運行了一個 Java 的程序。我們在開發和擴展 Java 方面非常有經驗。所以一旦 node.js 應用出問題了,我們可以立即切回 Java。不過,同時我們也發現了一些非常有意思的數據。
開發從1月份開始,我們花了幾個月的時間來搭建 node.js 的基礎設施。比如:sessions(會話),centralized logging(集中日志),keystores(存儲)。在這期間我們有5位 Java 工程師在開發 Java。在開發了兩個月后,兩位工程師開始開發 node.js 應用。在6月初兩個團隊的開發進度已經一樣了,兩者的功能完全一樣。開發 node.js 應用的那個小團隊,盡管推遲了兩個月,但是很快趕上了。這里我們對這些相同功能做的一些單元測試得出的結果:
Node.js的是:
更少的人開發的 node.js 應用比 Java 的快一倍;
節省了33%的代碼量;
少了40的文件;
(小編,這里作者的意思并不是 Java 程序員的素質沒有 node.js 的好,Java 語言的特點決定她需要更多的人,更多的時間,更多的代碼去完成在 node.js 下的同樣的工作,并且吃力不討好。參考:他們為什么說面向對象有問題,探討面向對象的一些缺陷 ;性能測評:Node.JS 比 Java EE 快 20% )
這是一個非常鼓舞人的證據,我們似乎應該更快地遷移到 JavaScript 平臺上去。我們立即做了一個決定,暫停 Java 應用的開發,全心全意開發 JavaScript 應用。這對開發 Java 項目的工程師來說是個好消息,他們已經消除了對 node.js 的疑慮,非常高興地投入到了并行的 node.js開發上來,這樣我們的開發效率提高了兩倍。
性能性能是一個非常有意思和具有爭議性的話題。在我們這,我們有兩個平臺實現完全一樣功能的程序;一個是使用基于 Spring 的內部 Java 框架;另一個是基于 kraken.js,express,dust.js 和其他開源框架。 這些程序包含三個 API,每個 API 來響應 2 到 5 個請求,由Dust 來模擬獲取數據和顯示頁面。
我們用線上的環境去測試這兩個應用,并收集了完成響應的時間和請求數。
node.js vs Java 性能對比在這張圖上你可以看到 node.js 應用的優勢:
每秒請求數量是Java的兩倍。不過更有意思的是我們僅使用了單核的node去跟5核的Java來對比,我們非常希望將來繼承擴大 node.js 的優勢。
渲染相同的頁面,node.js 節省了35%的時間。即每個頁面節約了 200 豪秒,用戶可以清楚地感覺到這樣的區別。
我們將繼續使用 node.js 來構建我們的Web應用。像我們正在開發的那些門戶,和已經上線的用戶概覽頁面。還有一打正在進入 Beta 測試的那些工程,我們會繼續分享我們在上線過程中的經驗,數據。對于 PayPal 來說這是一個另人激動的時刻。
原文:Node.js at PayPal
翻譯轉載自:OurJS
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/63990.html
摘要:由于不是線程安全的,故在方法上增加了同步操作,造成競爭等待。至此,整個多線程調優結束,通過充分優化同步競爭的方式,最終使得分線程記錄日志的性能比最原始的多線程寫同一文件提高了倍去鎖提高到倍,替換提高倍 背景 ??在一次項目的性能調優中,發現出現競爭瓶頸,導致在資源未使用滿的情況下,TPS已經無法提升。祭起JMC(JAVA MISSON CONTROL)飛行記錄器大法后,發現線程集中等待...
摘要:概述微軟雅黑本文主要描述服務端系統性能服務端高性能部署方案及優化措施服務端系統持續優化及升級策略。部署優化微軟雅黑使用,較之前的版本性能提升一倍以上。微軟雅黑開啟,生產環境應該開啟,性能會有巨大提升。概述 ????????本文主要描述ThinkSNS Plus服務端系統性能、服務端高性能部署方案及優化措施、服務端系統持續優化及升級策略。本文未涉及前端(PC站點、H5站點、Android、IO...
摘要:簡而言之,公司需要采取主動系統的方法,使網絡安全功能可以適應公共云。將開發運維應用于網絡安全如果開發人員可以在短短幾秒內啟動服務器,但必須等待兩周的時間才能讓安全團隊認同配置,這會削弱公共的云靈活性所帶來的價值。隨著企業不斷擴大對公共云的使用,它們必須反思如何保護數據和應用程序,并實施四項關鍵實踐。經過長時間的實驗,龍頭企業正在認真考慮大規模采用公共云。在過去幾年中,很多公司已經改變了IT戰...
摘要:年的混合云存儲和應用趨勢報告顯示,的受訪企業表示他們正在使用云去進行一部分的數據存儲。的調查顯示,的受訪者表示他們正在使用云存儲服務進行歸檔,而的調查表明,的企業也在進行相同的工作。 Google副總裁Kent Walker曾表示,截止到2000年,人類歷史上存儲的總數據量大約只有12EB,但根據IDC預測,到2020年全球總數據量將激增到40ZB(注:1ZB=1024EB,IEB=1024...
閱讀 1589·2023-04-26 01:54
閱讀 1621·2021-09-30 09:55
閱讀 2645·2021-09-22 16:05
閱讀 1856·2021-07-25 21:37
閱讀 2620·2019-08-29 18:45
閱讀 1886·2019-08-29 16:44
閱讀 1882·2019-08-29 12:34
閱讀 1346·2019-08-23 14:02