成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java領(lǐng)域從傳統(tǒng)行業(yè)向互聯(lián)網(wǎng)轉(zhuǎn)型你必須知道的那些事兒

開發(fā) 開發(fā)工具
在傳統(tǒng)行業(yè),相信你一定用過JMS,作為J2EE規(guī)范的一部分,所有的Aappserver(Weblogic、Websphere、Jboss等)都有JMS的實現(xiàn),那你一定知道JMS包含Queue和Topic兩種Subject,你也知道Send/Receive和Publish/Subscribe兩種收發(fā)模式,那在互聯(lián)網(wǎng)為什么就不用這些呢?

我為什么要寫這篇文章

武林中,"天下武功出少林"指各門各派的武功都與少林武學(xué)有一定的淵源,技術(shù)也是相同的道理,對于Java領(lǐng)域的應(yīng)用而言,傳統(tǒng)行業(yè)與互聯(lián)網(wǎng)行業(yè)的技術(shù)都來自J2SE和J2EE的生態(tài)圈,但是兩個行業(yè)的側(cè)重點不同,傳統(tǒng)行業(yè)側(cè)重于嚴(yán)格的規(guī)范、復(fù)雜的流程、豐富的功能,因此或多或少的都會使用J2EE規(guī)范定義的技術(shù),Appserver是J2EE規(guī)范的完全實現(xiàn),因此,傳統(tǒng)行業(yè)的企業(yè)級軟件開發(fā)基本都是部署在Appserver上的,這樣可以重復(fù)利用Appserver提供的通用功能而節(jié)省開發(fā)和實現(xiàn)的工作量,而后者更注重互聯(lián)網(wǎng)產(chǎn)品的非功能質(zhì)量需求,通常包括:高可用、高性能、安全性、可伸縮、可擴展等,互聯(lián)中***的一句話是:天線武功唯"快"而不破,充分看出互聯(lián)網(wǎng)企業(yè)里程序性能的重要性,為了達到較好的性能,高度抽象的J2EE技術(shù)已經(jīng)沒法滿足需求,因此互聯(lián)網(wǎng)技術(shù)更傾向于在簡單的J2SE上發(fā)展具有互聯(lián)網(wǎng)特色的技術(shù)棧,重新定義互聯(lián)網(wǎng)級的開發(fā)工具、平臺和技術(shù)棧。

由于筆者從傳統(tǒng)的外企轉(zhuǎn)型到互聯(lián)網(wǎng)已經(jīng)有3個年頭,近兩年來面試了很多來自傳統(tǒng)行業(yè)的同行們,筆者發(fā)現(xiàn)這些同行們都有意向走進處于風(fēng)口的互聯(lián)網(wǎng),但是由于傳統(tǒng)行業(yè)使用的技術(shù)棧與互聯(lián)網(wǎng)有所不同,不知從哪里開始入手準(zhǔn)備和提高,盡管他們有強烈的學(xué)習(xí)和提高的愿望,本文就是給這些想從傳統(tǒng)行業(yè)跨入互聯(lián)網(wǎng)的小伙伴們準(zhǔn)備的一篇導(dǎo)向性文章,幫助讀者了解互聯(lián)網(wǎng)的技術(shù)棧、了解互聯(lián)網(wǎng)的側(cè)重點、了解互聯(lián)網(wǎng)的核心技術(shù),并給出如何以傳統(tǒng)行業(yè)的技術(shù)棧為基礎(chǔ)快速掌握互聯(lián)網(wǎng)的核心技術(shù),其實,那只有一墻之隔,捅破那張窗戶紙兒,一切都豁然開朗。

這里需要再次澄清,我并不認(rèn)為互聯(lián)網(wǎng)行業(yè)的技術(shù)要比傳統(tǒng)技術(shù)深奧多少,這些技術(shù)跑不出J2SE和J2EE的生態(tài)圈,只不過高度抽象的J2EE技術(shù)由于性能上的局限性而被互聯(lián)網(wǎng)撇棄而已,但是不得不承認(rèn)的是兩個行業(yè)的側(cè)重點不同,傳統(tǒng)行業(yè)側(cè)重于規(guī)范,流程,功能的復(fù)雜性以及正確性,而互聯(lián)網(wǎng)更側(cè)重于“快”,這里的“快”有兩方面的意思,一個是產(chǎn)品運行效率要高,響應(yīng)速度要快,另外一個是開發(fā)效率要快,響應(yīng)市場需求要快。從另外一個側(cè)面說,傳統(tǒng)行業(yè)一般關(guān)注一個復(fù)雜系統(tǒng)的功能完善和豐富,而互聯(lián)網(wǎng)企業(yè)更關(guān)注一個簡單的垂直業(yè)務(wù)的非功能質(zhì)量,例如:高性能,可用性,高并發(fā),可擴展,可伸縮,安全性等,那么,一個從業(yè)人員從傳統(tǒng)行業(yè)到互聯(lián)網(wǎng)行業(yè),你到底還有多少距離?

小伙伴們從哪里開始入手互聯(lián)網(wǎng)

這兩年來面試下來看到了一個普遍的現(xiàn)象,來自于傳統(tǒng)行業(yè)的技術(shù)人員,他們大多數(shù)掌握的技能是SSH,稍微資深一點的工程師對J2EE規(guī)范有所了解,他們?nèi)匀辉谑褂肑2EE規(guī)范的EJB, JPA, JMS, JCA, JAAS等技術(shù),數(shù)據(jù)庫基本上使用Oracle,DB2,Sqlserver等等。傳統(tǒng)行業(yè)的開發(fā)人員基本實施“模塊包攬制”,這得益于J2EE規(guī)范的完整性,以及Appserver提供了基本所有架構(gòu)需要的功能,開發(fā)人員只需要將各個業(yè)務(wù)模塊填入J2EE和Appserver提供給你的框架即可,因此,一個傳統(tǒng)的開發(fā)人員會包攬一個模塊從前臺到后臺所有的工作,這包括:HTML, JS, CSS, EJB, JPA, SQL, PLSQL等等。這些技術(shù)是不是一無是處,當(dāng)然不是,反而是非常有價值的,那有了這些技術(shù),我們是否可以一步跨入互聯(lián)網(wǎng),也不是,還需要以這些技術(shù)為基礎(chǔ),進一步擴展技術(shù)視野,對欠缺的技術(shù)廣度和深度進行不足。

下面就學(xué)習(xí)傳統(tǒng)行業(yè)技術(shù)人員擁有哪些技術(shù)積累,下一步又如何補充自己的知識面,成為能夠勝任互聯(lián)網(wǎng)行業(yè)的優(yōu)秀技術(shù)人員呢?

消息隊列

在傳統(tǒng)行業(yè),相信你一定用過JMS,作為J2EE規(guī)范的一部分,所有的Aappserver(Weblogic、Websphere、Jboss等)都有JMS的實現(xiàn),那你一定知道JMS包含Queue和Topic兩種Subject,你也知道Send/Receive和Publish/Subscribe兩種收發(fā)模式,那在互聯(lián)網(wǎng)為什么就不用這些呢?

原因主要有兩個,一個是商業(yè)的Appserver都是收費的,然而,互聯(lián)網(wǎng)提供的產(chǎn)品是免費的,互聯(lián)網(wǎng)使用的產(chǎn)品也多是免費的,另外一個原因就是這些Appserver的實現(xiàn)性能差,有測評顯示ActiveMQ比JbossMQ速度要高出10倍,在某些應(yīng)用場景下ZeroMQ的速度要高出一個數(shù)量級,可達到微妙級別的延遲,有興趣可以參考ZeroMQ的性能測試頁面

除此之外,一些開源的MQ的實現(xiàn)針對互聯(lián)網(wǎng)業(yè)務(wù),提供了除Queue和Topic的支持,還有partition,group,broker等更復(fù)雜的消息模型,具體參考Kafka, Kafka的設(shè)計具有使用簡單、功能豐富、高性能等優(yōu)點,不但天生具有持久、分片、復(fù)制等功能,而且在使用上對開發(fā)者和運維的體驗也很好。對于Kafka的中間件設(shè)計,請參考我的博客文章簡單易用的消息隊列框架的設(shè)計與實現(xiàn)。

那么如果你在傳統(tǒng)行業(yè)掌握了JMS規(guī)范定義的消息隊列技術(shù),你只需要再往前走一步,請深入學(xué)習(xí)開源的Kafka、RockitMQ、ActiveMQ、RabbitMQ、MemcacheQ、Redis、ZeroMQ、MSQ等。

緩存

在傳統(tǒng)行業(yè),相信大家都用過Oscache和Ehcache, 前者主要針對網(wǎng)頁的緩存,后者主要針對數(shù)據(jù)庫數(shù)據(jù)的緩存,通常可作為Hibernate的二級緩存,相信有些人還用過Jboss Cache,這是一個分布式企業(yè)級可實時復(fù)制的Cache,有些人在項目中也寫了自己的緩存,甚至在一些項目中直接使用Hashtable作為緩存,其實這些緩存加速了特定場景下的數(shù)據(jù)訪問,對你的項目成功起到了至關(guān)重要的作用。

但是互聯(lián)網(wǎng)行業(yè)則從另外一個角度來使用緩存,主要應(yīng)用場景有兩個:***,大量的數(shù)據(jù)需要集中保存,在服務(wù)的任意節(jié)點上可以訪問緩存中的任意數(shù)據(jù),也就是需要數(shù)據(jù)的中心存儲,而且還要滿足快速的查詢需求的場景;第二,數(shù)據(jù)庫讀性能是有瓶頸的,廉價硬件機器上的單機Mysql讀操作吞吐量在1000/s左右,大量的讀查詢會壓垮數(shù)據(jù)庫,這需要使用緩存來抗住讀流量,通常應(yīng)用在有熱點數(shù)據(jù)的場景。

從這兩個應(yīng)用場景來看,互聯(lián)網(wǎng)行業(yè)更關(guān)心分布式緩存,那數(shù)據(jù)如何分布呢?很簡單,Hash或者一致性Hash,所以,咱們可不可以先把Oscache和Ehcache放一邊,來研究一下Redis,Memcache或者淘寶的Tair呢?最簡單的辦法從Redis和Memcache的區(qū)別開始入手?

除了要學(xué)習(xí)分布式緩存,例如:Redis、Memcache本身的功能和技術(shù)點外,最主要的要有緩存分片的思想,在互聯(lián)網(wǎng)里大多數(shù)的熱數(shù)據(jù)都是緩存在緩存服務(wù)中的,這需要大量的緩存服務(wù)器,單臺機器是不能滿足需求的,那緩存分片是一個大話題,緩存分片的實現(xiàn)方式一般有如下3種:

  • 通過代理層實現(xiàn),例如Codis,在代理層實現(xiàn)數(shù)據(jù)的路由,對應(yīng)用層透明。
  • 客戶端分片,可參考我的開源項目redic,實現(xiàn)簡單、使用簡單、支持分片、復(fù)制、失效轉(zhuǎn)移等功能。
  • 緩存服務(wù)器支持的高可用模式,例如:Redis 3.x、Sentinel等。

服務(wù)框架

在傳統(tǒng)行業(yè),相信大家都使用EJB和Webservice來提供服務(wù)的導(dǎo)出和導(dǎo)入,有些個別傳統(tǒng)行業(yè)不用APP服務(wù)器,僅僅使用JDK的RMI來導(dǎo)出和導(dǎo)入服務(wù),但是為什么互聯(lián)網(wǎng)偏偏不喜歡這些技術(shù)呢?Webservice使用重量級的SOAP協(xié)議,臃腫的XML滿世界都是,性能上的去嗎? 那互聯(lián)網(wǎng)用什么,互聯(lián)網(wǎng)使用輕量級的RPC框架和RESTful服務(wù),前者使用輕量級的序列化框架,例如:Google的ProtoBuffer, 還有Hessian和Burlap等序列化協(xié)議,后者則使用簡單的HTTP協(xié)議,前者適合在內(nèi)網(wǎng)做高性能的服務(wù)調(diào)用,而后者適合異構(gòu)平臺的服務(wù)調(diào)用,例如: 跨語言,跨防火墻,前后臺之間等。RPC遠程調(diào)用請參考阿里的Dubbo框架和Twitter的Finagle框架,至于Rest框架參請考Spring Web MVC,Spring Boot、Jersey,Apache CXF等。

在互聯(lián)網(wǎng)的世界里,幾乎所有的公司都實現(xiàn)了服務(wù)化,服務(wù)化導(dǎo)致的問題就是一致性問題,如何解決高并發(fā)系統(tǒng)的一致性呢?使用兩階段提交協(xié)議、三階段提交協(xié)議、TCC?還是遵循ACID原理、CAP原理、BASE原理?如果我們保證的是最終一致性模型,我們都有哪些模式可以應(yīng)用。

最近微服務(wù)變得越來越流行,微服務(wù)實際上是服務(wù)化的一個延續(xù),是更細(xì)致化的服務(wù)化的架構(gòu),微服務(wù)的服務(wù)框架的代表是Spring Cloud,它與Netflix集成,提供了限流、熔斷、倉壁隔離、失效轉(zhuǎn)移等為服務(wù)化中必不可少的高級特性,大家可以到官網(wǎng)文檔進一步學(xué)習(xí)Spring Cloud相關(guān)技術(shù)。

數(shù)據(jù)庫

在傳統(tǒng)行業(yè),大多數(shù)人開發(fā)人員都使用Oracle, DB2, Sqlserver數(shù)據(jù)庫,其實,從功能和性能上來講,他們都不亞于Mysql, 甚至比Mysql更優(yōu)秀,但是Mysql是免費的,這使得Mysql得到互聯(lián)網(wǎng)行業(yè)的青睞。

那么我們分析下,傳統(tǒng)行業(yè)的人員在數(shù)據(jù)庫方面欠缺什么嗎?首先,Oracle和Mysql都使用B+樹索引,原理相同,使用方法相同;Oracle支持行級鎖,Mysql Innodb同樣支持行級鎖;Oracle Dataguard支持?jǐn)?shù)據(jù)復(fù)制,Mysql也支持?jǐn)?shù)據(jù)復(fù)制,但是Mysql的復(fù)制模式更靈活,并且支持主主配置。前面這些都是大同小異,如果你理解了相應(yīng)的Oracle技術(shù),你用很少的時間就可以掌握Mysql的相關(guān)技術(shù)。但是不同點是,Oracle雖然支持集群,通過增加服務(wù)節(jié)點的方式可以增加服務(wù)性能,但是集群的節(jié)點數(shù)量是有限的,并且數(shù)據(jù)存儲是共享的,所以擴容基本采用垂直方式,然而使用Mysql則采用水平擴展,也就是需要進行手工的分區(qū)分表,對數(shù)據(jù)進行分而治之,以滿足日益增長的讀寫壓力以及數(shù)據(jù)存儲壓力。因此,如果想向互聯(lián)網(wǎng)轉(zhuǎn)行,一定要學(xué)好Mysql,推薦閱讀《高性能Mysql》,這本書是必讀的書籍,而且推薦每一個應(yīng)用開發(fā)人員都要通讀全書,而不是僅僅讀其中與應(yīng)用相關(guān)的那部分。

在互聯(lián)網(wǎng)行業(yè)里面對性能追求到達了***,因此會要求開發(fā)人員對數(shù)據(jù)庫原理有所了解,其中最重要的部分就是索引。

負(fù)載均衡

剛才談到,高并發(fā)系統(tǒng),壓力山大的時候怎么辦?思想只有一個分而治之( divide-and-conquer)。因此,負(fù)載均衡則非常重要,傳統(tǒng)行業(yè)以銷售產(chǎn)品為盈利模式,因此,大多數(shù)項目在需要負(fù)載均衡的時候,多使用F5硬件負(fù)載均衡。

實際上傳統(tǒng)的J2EE規(guī)范的EJB也可以分布式發(fā)布,通過JNDI的集成,也可以進行一定程度的負(fù)載均衡,但是這個負(fù)載均衡顯得太重量級,用起來非常的不方便,效率也很低,并且和APP服務(wù)器綁定。

那么互聯(lián)網(wǎng)呢?多采用軟負(fù)載均衡,你必須了解LVS,nginx, Apache, Varnish, Haproxy等七層和三四層負(fù)載均衡原理和產(chǎn)品。

JVM

另外,在互聯(lián)網(wǎng)行業(yè)做Java開發(fā),一定要對JVM有所了解,并且進行深入的研究,例如:GC,類加載,Hotspot編譯器,多線程、并發(fā)和鎖,IO和NIO等。推薦閱讀《深入理解Java虛擬機++JVM高級特性與***實踐》,《深入理解Java7》,《Java Concurrency In Practice》,《Pro Java 7 NIO.2》,《Java Performance》等一系列深層次的JVM相關(guān)數(shù)據(jù),***能閱讀《The Java® Language Specification》和《The Java® Virtual Machine Specification》兩本龍書。

大數(shù)據(jù)與云計算

作為一個IT從業(yè)人員,一定要跟上技術(shù)潮流,像云計算,大數(shù)據(jù),CAP, BASE, 選主算法等概念不得不去了解,對于熱點技術(shù)不得不研究,例如: Hadoop, Hbase, Zookeeper, Openstack, Dooker, Kafka, Storm等。

性能評估和容量估算

如果你決定要來互聯(lián)網(wǎng)一顯身手,你必須學(xué)會性能評估和容量估算,這包括對前端機、緩存、消息隊列、數(shù)據(jù)庫等各個性能指標(biāo)的估算,例如:吞吞量,響應(yīng)時間,內(nèi)存,CPU,IO,網(wǎng)絡(luò)IO等。

性能和容量評估的方法論和典型案例可參考文章互聯(lián)網(wǎng)性能與容量評估的方法論和典型案例

為了確保架構(gòu)設(shè)計的合理性,性能和容量評估是在架構(gòu)設(shè)計初期完成的,用來證明架構(gòu)方案可行,但是在項目實施中和實施后,還需要對項目的進行壓測,來證明項目按照既定的目標(biāo)而推薦和完成,關(guān)于性能測試的方法論和設(shè)計流程,我將會在后續(xù)文章中介紹給讀者。

互聯(lián)網(wǎng)架構(gòu)方法論

在互聯(lián)網(wǎng)行業(yè)里,處理大規(guī)模高并發(fā)的用戶請求的核心思想只有一個,那就是“分而治之”,因此,通常業(yè)務(wù)被拆分為多個職責(zé)單一的服務(wù),在某一個單服務(wù)里,業(yè)務(wù)邏輯并不復(fù)雜,但是對非功能質(zhì)量需求的要求較高,這通常表現(xiàn)在性能、可用性等方面,因此互聯(lián)網(wǎng)的架構(gòu)設(shè)計中首要考慮的是非功能質(zhì)量,這和傳統(tǒng)行業(yè)注重功能和業(yè)務(wù)流程的情況有所不同,對于互聯(lián)網(wǎng)行業(yè)中,架構(gòu)設(shè)計的案例,可以參考發(fā)號器Vesta的設(shè)計與實現(xiàn)如何設(shè)計一款多場景分布式發(fā)號器(Vesta),來了解互聯(lián)網(wǎng)業(yè)務(wù)的架構(gòu)設(shè)計的風(fēng)格和思路。

技術(shù)攻關(guān)和線上應(yīng)急

在互聯(lián)網(wǎng)企業(yè)里,大多數(shù)產(chǎn)品都是針對用戶端的,用戶端的產(chǎn)品的特點是擁有海量的用戶、產(chǎn)品要能夠處理海量用戶產(chǎn)生的大規(guī)模高并發(fā)的用戶請求,因此會對產(chǎn)品的可用性比較敏感,在這種環(huán)境下,技術(shù)攻關(guān)和線上應(yīng)急顯得尤為重要,例如:如何解決線上線程卡死問題、如何解決OOM問題、如何解決服務(wù)超時問題等,可以參考如下兩篇文章:Java服務(wù)化系統(tǒng)線上應(yīng)急和技術(shù)攻關(guān),你必須掌握的Linux命令Java服務(wù)化系統(tǒng)線上應(yīng)急和技術(shù)攻關(guān),你必須擁有的那些應(yīng)用層腳本和Java虛擬機命令

向這里看你會豁然開朗

希望這篇文章能夠幫助更多的傳統(tǒng)行業(yè)的從業(yè)人員轉(zhuǎn)入互聯(lián)網(wǎng),在互聯(lián)網(wǎng)的大舞臺上展現(xiàn)你的才能,***,附贈一張筆者在互聯(lián)網(wǎng)行業(yè)里通過面試識別人才的《Java技能圖譜》,大家可以根據(jù)其中的思維導(dǎo)圖來深入學(xué)習(xí)各項知識點,每個知識點都需要系統(tǒng)的學(xué)習(xí),或者看一本書或者查詢相關(guān)的資料,切記要積累知識的廣度的同事也要有一定的深度。

Java秘籍圖譜

點擊《Java領(lǐng)域從傳統(tǒng)行業(yè)向互聯(lián)網(wǎng)轉(zhuǎn)型你必須知道的那些事兒》閱讀原文。

【本文為51CTO專欄作者“李艷鵬”的原創(chuàng)稿件,轉(zhuǎn)載可通過作者簡書號(李艷鵬)或51CTO專欄獲取聯(lián)系】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2016-03-15 22:35:50

漏洞智能設(shè)備安全網(wǎng)店刷單

2013-01-18 09:26:58

2014-08-26 10:30:45

Linux

2019-05-30 08:25:50

5G4G網(wǎng)絡(luò)

2012-02-08 09:44:05

ChromeAndroid

2021-10-12 13:52:59

量子互聯(lián)網(wǎng)網(wǎng)絡(luò)技術(shù)量子密鑰

2015-07-21 17:19:55

用友iUAP

2014-09-01 15:39:16

傳統(tǒng)企業(yè)轉(zhuǎn)型

2021-03-02 11:06:17

工業(yè)互聯(lián)網(wǎng)

2013-12-30 09:19:52

2015-10-27 10:22:47

Html5API調(diào)用

2015-06-11 16:48:46

2014-09-10 14:36:55

浪潮互聯(lián)網(wǎng)技術(shù)

2010-04-12 14:58:56

Meego開發(fā)

2015-06-25 10:14:13

互聯(lián)網(wǎng)+傳統(tǒng)企業(yè)

2017-01-22 10:10:29

2012-09-24 16:28:16

Google

2018-01-17 22:11:54

數(shù)字化轉(zhuǎn)型人工智能互聯(lián)網(wǎng)

2011-07-22 17:21:55

戴爾

2016-07-04 13:56:25

互聯(lián)網(wǎng)+政務(wù)互聯(lián)網(wǎng)大會
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久夜视频 | 久久精品国产一区二区电影 | 国产 欧美 日韩 一区 | 日韩色在线 | 久久精品亚洲欧美日韩久久 | 手机三级电影 | 日韩人体在线 | 婷婷99| 欧美一区二区三区的 | av国产精品| 日韩在线免费视频 | 成人在线亚洲 | 最新国产精品精品视频 | 男女国产视频 | 成人免费观看视频 | 欧美综合精品 | 激情av网站 | 日批免费观看 | 国产做a爱片久久毛片 | 久久免费视频网 | 91国在线观看 | 亚洲国产精品日本 | 四虎成人免费视频 | 日日爱av | 欧美激情 一区 | 一区二区三区国产 | 午夜精品久久久久久久久久久久 | 欧美 日韩 在线播放 | 中文字幕一区二区三区四区五区 | 色婷婷综合久久久中字幕精品久久 | 一区二区视频在线 | 一区二区视频在线观看 | 亚洲黄色网址视频 | 午夜精品一区二区三区在线视频 | 精品美女久久久 | 久精品视频 | 精品一区二区三区免费视频 | 欧美一级二级视频 | 国产一区二区日韩 | 久久久久亚洲精品 | 日韩欧美福利视频 |