天天看點

【Java開發者專場】阿裡特邀專家徐雷:Java為王,網際網路高并發架構設計選型之路

本篇文章來自于2018年12月22日舉辦的

《阿裡雲栖開發者沙龍—Java技術專場》

,徐雷專家是該專場第三位演講的嘉賓,本篇文章是根據徐雷專家在

的演講視訊以及PPT整理而成。

【Java開發者專場】阿裡特邀專家徐雷:Java為王,網際網路高并發架構設計選型之路

摘要:Java從誕生以來幾乎一直是排名第一的語言,長期霸榜。在架構師成長道路中,學習Java是絕對是最正确的選擇。本文分别分别介紹了Java平台的優勢,國内轉Java架構的網際網路公司的和幾種成熟的Java架構的演變路程。在最後,為大家推薦了最成熟的Java架構技術選型路線。

演講嘉賓簡介:

徐雷,資深架構師,MongoDB中文社群聯席主席,阿裡雲栖Java講師,阿裡雲大學MongoDB講師,MongoDB中文社群主席,專家組成員;專注于分布式架構,Java Spring Boot、Spring Cloud、MongoDB、Redis;10年+開發經曆,喜歡專研技術問題;《MongoDB實戰》第2版、《24種雲計算架構設計模式》譯者

本次直播視訊精彩回顧,戳這裡!

https://yq.aliyun.com/live/721

PPT下載下傳位址:

https://yq.aliyun.com/download/3236

以下内容根據演講嘉賓視訊分享以及PPT整理而成。

本次的分享主要圍繞以下三個方面:

一、Java為王

Java從誕生以來一直是排名第一的語言,長期霸榜。國外有一個Programming Language Rank網站,提供了各類程式設計語言百分比的排名(如下圖)。Java語言長期排名第一,百分比曾經一度達到26%,這個資料是非常高的。很多東西之是以流行是有内在原因的,Java也是一樣,Java領域好東西很多。最近因為Oracle提出要對Java收費,Java語言排名有稍微波動,Oracle作為傳統的軟體公司,缺少網際網路開源社群思維。但盡管Java語言被折騰的死去活來,但是生命力還是經受得住考驗的。同樣,其中還有最近非常火的Go語言,以及Python語言。因為AI的流行,Python語言也是非常火熱。

最近很多人會擔心Java收費的問題,但如果仔細檢視過官方的科技文檔的話會注意到其中寫的是對Oracle JDK收取維護費用,由于整個Java的生态是非常大的,Oracle JDK 并不等于Java JDK。另外國内BAT幾大公司早已考慮到這個問題,他們都有自己的Java JDK,如Open JDK。是以完全不用擔心Java會收費,Java之父James Gosling跳槽到亞馬遜,亞馬遜前不久也已經承諾永久免費自己的JDK版本,并且支援最新的Java 11。

【Java開發者專場】阿裡特邀專家徐雷:Java為王,網際網路高并發架構設計選型之路

二、Java架構網際網路公司

在一個月之前,國内釋出了關于網際網路公司的排名,其中前100名的公司中超過95%的公司都選擇了Java架構。是以Java學得好,找到高薪工作并不是難題。

語言本身沒有優劣之分,但是架構體系确實有成熟度和完善度的差別。下圖列出了國内轉Java架構的一些網際網路公司,在2011年左右,京東最早開始轉Java,現在看來是可以說是非常有先見之明的選擇。作為公司的架構師或者技術專家,在選擇技術解決方案時一定要符合公司本身的情況,而不是依據自己的喜好。同時注意不要選擇多種語言,盡量選擇統一的語言,因為語言越少,風險也就越可控。後期可以根據業務發展需要選擇合适的語言架構。

【Java開發者專場】阿裡特邀專家徐雷:Java為王,網際網路高并發架構設計選型之路

目前的網際網路并發架構中,天貓雙11是最好的分布式高并發架構的案例。去年雙11的MySQl資料庫寫入是每秒4000萬,今天就已經超過1個億。相比之下,美國的黑五遠沒有雙11的并發高,一是因為人口差距,另外黑五的活動力度并沒有雙11大,在美國,平時也可以買到很便宜的商品。可以說阿裡現在的技術架構在上司着國内網際網路技術架構的發展,是以大家可以平時多關注阿裡的技術峰會,跟進學習最新的技術。

【Java開發者專場】阿裡特邀專家徐雷:Java為王,網際網路高并發架構設計選型之路

國内網際網路企業在技術架構選型方面絕大多數是選擇開源,免費,跨平台和成熟的技術路線。在早期,國内很多大的國企使用的都是Oracle,IBM的技術。到現在,國内幾大銀行也開始走開源免費的路線。這是因為之前沒有比較成熟的系統架構路線和案例,但在近十幾年,BAT幾大公司已經為大家踩出來了這種技術路線,帶領着很多企業往這個方向走。

下圖列出了很多開源社群的技術架構,涵蓋的範圍很大,前端後端以及中間件,包括作業系統。作業系統的話,Linux最火的CentOS和Ubuntu是網際網路公司用的比較多的系統。Java伺服器是Tomcat,消息隊列的話中小型公司可以選擇RabbitMQ,大型公司可以用Kafka。要注意,架構師在選擇技術架構時,一定要學習它們背後的原理,不停的鑽研,不能停留在隻會用,隻會用的架構師很快會被淘汰掉。在做架構設計時,永遠要把公司的需求放在第一位,永遠為公司的業務服務。而且架構設計往往沒辦法一步到位,這個過程一定是可疊代的,可進化的。

【Java開發者專場】阿裡特邀專家徐雷:Java為王,網際網路高并發架構設計選型之路

三、Java架構案例

SOA架構

電商領域有很多技術架構,SOA架構是面向服務的架構,大概是10年前提出的架構,但到現在還是有很多企業在用SOA架構。

【Java開發者專場】阿裡特邀專家徐雷:Java為王,網際網路高并發架構設計選型之路

移動網際網路架構

在SOA的基礎上,技術架構一直在慢慢演化。下圖移動網際網路的架構,繼續演化細分更多層。

【Java開發者專場】阿裡特邀專家徐雷:Java為王,網際網路高并發架構設計選型之路

現在用的比較多Java架構是基于Spring MC 或者Spring boot。簡單的三層架構其實并沒有什麼難度,但要放到更複雜的分布式環境的,可能會遇到許多挑戰性的問題。而且同時要把一個架構周邊的關鍵技術也要掌握,這樣才會具備競争力。作為一名架構師,還要提高自身的溝通能力,了解并能夠将公司或者客戶的需求變現落地。

【Java開發者專場】阿裡特邀專家徐雷:Java為王,網際網路高并發架構設計選型之路

物聯網IOT架構

物聯網IOT架構需要對接一些硬體裝置,比如智能手環,高德地圖,車載裝置等等。是以物聯網的資料采集頻率會比較高,很多時候會涉及到大資料,雖然可以用Go和C#等别的語言做物聯網架構,但是在大資料領域,Hadoop,Spark等幾個主要的技術架構基本是基于Java的,是以在選擇語言時,選擇Java還是最合适而且風險最小的,另外團隊内也可以形成技術積累。

【Java開發者專場】阿裡特邀專家徐雷:Java為王,網際網路高并發架構設計選型之路

服務治理架構

下圖是阿裡提出的Dubbo架構,絕大多公司還用不到這個架構。因為很多公司還沒有遇到如此複雜的分布式系統架構問題。Dubbo考慮對接不同的分布式協定,注意不是所有的協定都是HTTP,Dubbo支援的協定多種多樣,而且都提供了不同解決方案。Dubbo架構中Elastic Computing思想非常好,它可以做到在高并發之後進行彈性擴容。

【Java開發者專場】阿裡特邀專家徐雷:Java為王,網際網路高并發架構設計選型之路

微服務架構

選擇微服務架構要視自己公司的情況而定,不是所有的系統都适合微服務架構。因為有許多潛在的問題。目前比較成熟的微服務解決方案是Java Spring Cloud。當然也有開源的Service Mesh,但是它的技術棧還不是太成熟。從字面層面上說,微服務是把大服務拆分成小的服務,随之而來,這會涉及到很多周邊的問題,其中包括安全問題,通信協定問題,部署問題,統一接口問題和代理問題等等。如果想學習微服務,一定要關注這些問題,這才是微服務最有價值的地方。微服務架構中使用MongoDB和Redis的還是比較多的。近四年來,Spring Cloud,包括社群協同開發貢獻的許多架構,以及阿裡開源的微服務架構Spring Cloud Alibaba,是的Java的微服務方案更加的成熟,已經經過千百億級别消息網際網路公司的驗證。可以說微服務架構的成熟技術方案都是基于Java的。目前來講,微服務架構的Java解決方案坑是最少的,最成熟的,雖然有幾個語言抄襲的Java某個微服務架構,但是無法抄襲整個不斷變化發展的平台。

【Java開發者專場】阿裡特邀專家徐雷:Java為王,網際網路高并發架構設計選型之路

大資料架構

Hadoop技術架構很多大公司都在用,目前主要的最成熟的大資料架構解決方案也都是基于Java,當然也有一部分使用Scala,但其實Scala也算是Java語言的一個變種。另外還有些輕量級技術解決方案,如Spark,Storm,Flink等等。不同的方案解決問題的側重點是不同的,在選擇技術解決方案時要注意總體方向要選對。

【Java開發者專場】阿裡特邀專家徐雷:Java為王,網際網路高并發架構設計選型之路

IOT+大資料架構

技術架構在早期是單一的,但是到後期一定是多重架構綜合起來。比如電商領域,後期會進行微服務架構進行局部的改造,再慢慢引入大資料架構。另外要注意,在做資料采集時,每個資料節點都是叢集架構模式,如果機器當機,資料會直接丢失,無法恢複。是以在技術路線選型上推薦下圖中的方案,基于Open JDK和Java Spring Cloud這套路線。綜合來講,Java架構是最成熟的,而且,它可以一次提供幾套成熟的技術架構方案。

【Java開發者專場】阿裡特邀專家徐雷:Java為王,網際網路高并發架構設計選型之路

本文由雲栖志願小組董黎明整理 編輯

社群技術交流:【阿裡Java技術進階】每周在群内進行【技術教育訓練直播】和【線上回答技術問題】歡迎點選link入群:

http://tb.cn/gXRstIw

或者 釘釘掃碼入群:

【Java開發者專場】阿裡特邀專家徐雷:Java為王,網際網路高并發架構設計選型之路

相關文章:

阿裡雲栖開發者沙龍-Java技術專場 (最全資料下載下傳) 【Java開發者專場】阿裡專家梁笑:2018雙十一下單成功率99.9%!供應鍊服務平台如何迎接大促 【Java開發者專場】阿裡專家墨玖:淘票票工程師文化 【Java開發者專場】阿裡專家杜萬:Java響應式程式設計,一文全面解讀