JavaEE死了
當java出世時,那些大玩家像IBM、BEA、Oracle等看到了一個非常好的賺錢機會,因為Java是一個偉大的Web程式語言。但在程式語言上怎麼能掙大錢呢?答案是置於其上建立伺服器並使其複雜化,這樣大公司才會花大價錢購買。這就是為什麼我們有JEE的JSR規範,WebLogic,WebSphere和其他伺服器。
大型應用程式包部署在這些伺服器上會跑得太慢了,太多記憶體損耗。在一個容器內進行開發和除錯是一個噩夢。
由於資源使用率太高,你無法用一個合理的價格找到公共主機託管公司來長時間支援java執行。你想用java構建網站,你必須花大價錢租用主機甚至你可能用aServlet容器。
2003,Rod Johnson釋出了Spring框架,無需EJB就可以使用Ioc和POJO開發。由此帶來生產力的增長是巨大的,很多開發者開始使用Sring,並將J2EE EJB丟擲窗外。應用伺服器廠商看到這種趨勢,他們在設計JEE5時就注意提高生產力和減輕使用者的痛。不幸的是,今天的Spring框架還是像JEE容器那樣基於JEE 的servlet容器的設計,這是一個十年前沒有考慮到多核和NIO的設計。
在這段時間內,PHP飛速發展。它使用較少的記憶體和資源,被眾多主機託管公司支援。一些建立在PHP的CMS平臺 如wordpress,Drupal等把很多開源開發者變為PHP程式設計師。儘管php仍然是最流行的語言,它還是有它的缺點。它效能慢且很難使它具有可擴充套件性。
2009年Ryan Dahl引入了Node.js支援非同步,非堵塞事件驅動I/O提高響應率,相比JEE叢集有效利用了單個伺服器的吞吐能力。js是一個很好的設計,但也有其侷限性。很難規模化,很難與現有的遺留系統的整合。
2014年一個新的成員Undertow來到城裡,它是基於非阻塞java伺服器。從techempower.com測試看出,它在8000美元的戴爾伺服器中支援每秒幾百萬請求,而使用相同的測試用例,谷歌在叢集下也只能支援一百萬個請求。Undertow有輕量級的核心,1mb大小,簡單的嵌入式伺服器,使用少於4MB的堆空間。
使用新的Undertow為核心,我們已經建立了輕量java框架,以容器化微服務為目標。它支援OpenAPI設計驅動,提供執行期間的安全和驗證。
大型應用程式包部署在這些伺服器上會跑得太慢了,太多記憶體損耗。在一個容器內進行開發和除錯是一個噩夢。
由於資源使用率太高,你無法用一個合理的價格找到公共主機託管公司來長時間支援java執行。你想用java構建網站,你必須花大價錢租用主機甚至你可能用aServlet容器。
2003,Rod Johnson釋出了Spring框架,無需EJB就可以使用Ioc和POJO開發。由此帶來生產力的增長是巨大的,很多開發者開始使用Sring,並將J2EE EJB丟擲窗外。應用伺服器廠商看到這種趨勢,他們在設計JEE5時就注意提高生產力和減輕使用者的痛。不幸的是,今天的Spring框架還是像JEE容器那樣基於JEE 的servlet容器的設計,這是一個十年前沒有考慮到多核和NIO的設計。
在這段時間內,PHP飛速發展。它使用較少的記憶體和資源,被眾多主機託管公司支援。一些建立在PHP的CMS平臺 如wordpress,Drupal等把很多開源開發者變為PHP程式設計師。儘管php仍然是最流行的語言,它還是有它的缺點。它效能慢且很難使它具有可擴充套件性。
2009年Ryan Dahl引入了Node.js支援非同步,非堵塞事件驅動I/O提高響應率,相比JEE叢集有效利用了單個伺服器的吞吐能力。js是一個很好的設計,但也有其侷限性。很難規模化,很難與現有的遺留系統的整合。
2014年一個新的成員Undertow來到城裡,它是基於非阻塞java伺服器。從techempower.com測試看出,它在8000美元的戴爾伺服器中支援每秒幾百萬請求,而使用相同的測試用例,谷歌在叢集下也只能支援一百萬個請求。Undertow有輕量級的核心,1mb大小,簡單的嵌入式伺服器,使用少於4MB的堆空間。
使用新的Undertow為核心,我們已經建立了輕量java框架,以容器化微服務為目標。它支援OpenAPI設計驅動,提供執行期間的安全和驗證。
JEE供應商
幾年前,Oracle和IBM花了數十億美元開發應用伺服器,這些伺服器(WebLogic、WebSphere)以數百萬美金出售給大公司,現在變得很難賣了,隨著微服務發展,應用伺服器更難賣了,這些伺服器主要用於單片整體型應用,難以管理。我工作過的一個應用有數以百計的ejb,每次稍有變化,就會花費45分鐘來構建和部署到WebLogic。
從客戶的角度來看,不值得購買這些伺服器的,你不得不花錢去升級你的應用伺服器舊版本。這些升級成本數百萬美元,加上新的應用伺服器的成本。
一些聰明的人開始疑問:為什麼我們需要部署到應用伺服器?為什麼我們需要包裝我們的應用為ear或war,而不是jar?為什麼我們不能打破大應用變成規模更小的獨立部署。
問題的答案是微服務。維基百科定義:“…一個軟體體系結構風格,複雜的應用程式都是由小而使用語言無關的API互相通訊的獨立過程組成1。這些服務都很小,高度解耦和重點是實現小的任務,便於系統構建模組化。”
而精衛越來越流行,很多廠商都試圖重新構建Web服務到微服務,這樣產品才能賣得出去。
大公司正在分解他們的大應用程式為較小的碎片,能夠單獨部署和更換。這些小的服務部署在雲上的Docker容器。在過去的幾年裡我一直為我的客戶在做這方面的工作。
[該貼被banq於2016-11-11 18:07修改過]
相關文章
- #累死了#
- 亞馬遜 Redshift 死了嗎?亞馬遜
- JavaEE面試題收集Java面試題
- JavaEE概念介紹Java
- JavaEE 啟示錄Java
- Hadoop真的要死了嗎?Hadoop
- Hadoop 真的要死了嗎?Hadoop
- 沒錯!Python殺死了Excel!PythonExcel
- 這些年死了多少遊戲公司?遊戲
- 程式設計師小張死了程式設計師
- 基於javaEE的看看Java
- 搭建JAVAEE環境(一)Java
- ThinkPHP 3.13 搞笑圖站 搞笑死了PHP
- MySQL 連線為什麼掛死了MySql
- MySQL 連線為什麼掛死了?MySql
- 極客漫畫:誰殺死了 MySQLMySql
- Flash真的要死了!亞馬遜全面放棄亞馬遜
- JavaEE是做什麼的?Java
- JavaEE PayPal 全球支付快速整合Java
- JavaEE體系架構概述Java架構
- JavaEE 7的最新進展Java
- 遊戲是如何告訴"你快要死了”?遊戲
- 智慧手機iPhone殺死了數位相機iPhone
- TDD(測試驅動開發)死了嗎?
- 四種JavaEE架構簡介Java架構
- Linux(二十)搭建JavaEE環境LinuxJava
- JavaEE的13種核心技術Java
- 【JavaEE】Java的13個規範Java
- JavaEE體系架構概述(續)Java架構
- JavaEE 6:EJB3.1新特性Java
- 讓ATM瘋狂吐錢的黑客死了黑客
- 面試問題記錄 三 (JavaWeb、JavaEE)面試JavaWeb
- JavaEE學習之走進JSPJavaJS
- 為什麼我還在使用JavaEE?Java
- javaEE太火,你需要的只是自信Java
- 招聘JAVAEE開發工程師(北京)Java工程師
- JavaEE35個系統原始碼Java原始碼
- 崩了,Python把自己玩死了! 網友:不可惜!Python