更新時間:2020-03-18 10:07:27 來源:動力節(jié)點 瀏覽2712次
Java架構師全套視頻,知識要點整理,初學Java的同學也可以備用,因為這些內容對于立志成為架構師的你不可或缺。我們先從Java架構師的崗位要求說起:
除了對工作經驗、知識結構、邏輯思維方面的要求,在具體技術層面可以看出Spring全家桶、消息中間件ActiveMQ、JVM性能調優(yōu)都占有比較重要的位置,下面我們將介紹這些技術要點,并結合分布式電商項目,幫你快速梳理。這些內容展開來講比較多,如果需要詳細學習資料,在私信中回復“學習”即可獲取!前方高能,請上車。
Spring全家桶
Spring全家桶其實可以將其看做是一套技術合集,它包括SpringMVC、SpringBoot、SpringCloud、SpringCloudDataflow等解決方案。很多技術研發(fā)人員將Spring作為項目的核心內容,當然也是面試必考。
1.SpringBoot
它的目標是簡化Spring應用和服務的創(chuàng)建、開發(fā)與部署,簡化了配置文件,使用嵌入式web服務器,含有諸多開箱即用的微服務功能,可以和springcloud聯(lián)合部署。
SpringBoot的核心思想是約定大于配置,應用只需要很少的配置即可,簡化了應用開發(fā)模式。
2.SpringData
是一個數(shù)據(jù)訪問及操作的工具集,封裝了多種數(shù)據(jù)源的操作能力,包括:jdbc、Redis、MongoDB等。
3.SpringCloud
是一套完整的微服務解決方案,是一系列不同功能的微服務框架的集合。SpringCloud基于SpringBoot,簡化了分布式系統(tǒng)的開發(fā),集成了服務發(fā)現(xiàn)、配置管理、消息總線、負載均衡、斷路器、數(shù)據(jù)監(jiān)控等各種服務治理能力。比如sleuth提供了全鏈路追蹤能力,Netflix套件提供了hystrix熔斷器、zuul網關等眾多的治理組件。config組件提供了動態(tài)配置能力,bus組件支持使用RabbitMQ、kafka、Activemq等消息隊列,實現(xiàn)分布式服務之間的事件通信。
SpringBoot對于掌握SpringCloud部分的技術非常重要,已經有不少企業(yè)應用到了自己的項目中,也常見于程序員架構師面試當中。
ActiveMQ及其應用場景
ActiveMQ是Apache出品,是目前比較流行的,能力強勁的開源消息總線。ActiveMQ是一個完全支持JMS1.1和J2EE1.4規(guī)范的JMSProvide實現(xiàn)。盡管JMS規(guī)范出臺已經是很久的事情了,但是JMS在當今的J2EE應用中仍然扮演這特殊的地位。
應用場景:
消息隊列在大型電子商務類網站,如京東、淘寶、去哪兒等網站有這深入的應用。
隊列的主要作用:消除高并發(fā)訪問高峰,加快網站的響應速度。
在不使用消息隊列的情況下,用戶的請求數(shù)據(jù)直接寫入數(shù)據(jù)庫,在高并發(fā)的情況下,對數(shù)據(jù)庫造成巨大的壓力,同時也使系統(tǒng)響應延遲加劇;
早使用隊列后,用戶的請求發(fā)給隊列后立即返回;
例如:當然不能直接給客戶提示訂單提交成功,在淘寶上提示:"您提交了訂單,請等等系統(tǒng)確認"
再由消息隊列的消費者進程從消息隊列中獲取數(shù)據(jù)庫,異步寫入數(shù)據(jù)庫。
由于消息隊列的服務處理速度遠快于數(shù)據(jù)庫,因此用戶的響應延遲可能得到有效改善。
JVM性能調優(yōu)
JVM內存模型及垃圾收集算法
1.根據(jù)Java虛擬機規(guī)范,JVM將內存劃分為:
New(年輕代)、Tenured(年老代)、永久代(Perm)
其中New和Tenured屬于堆內存,堆內存會從JVM啟動參數(shù)(-Xmx:3G)指定的內存中分配,Perm不屬于堆內存,有虛擬機直接分配,但可以通過-XX:PermSize-XX:MaxPermSize等參數(shù)調整其大小。
年輕代(New):年輕代用來存放JVM剛分配的Java對象
年老代(Tenured):年輕代中經過垃圾回收沒有回收掉的對象將被Copy到年老代
永久代(Perm):永久代存放Class、Method元信息,其大小跟項目的規(guī)模、類、方法的量有關,一般設置為128M就足夠,設置原則是預留30%的空間。
New又分為幾個部分:
Eden:Eden用來存放JVM剛分配的對象
Survivor:兩個Survivor空間一樣大,當Eden中的對象經過垃圾回收沒有被回收掉時,會在兩個Survivor之間來回Copy,當滿足某個條件,比如Copy次數(shù),就會被Copy到Tenured。顯然,Survivor只是增加了對象在年輕代中的逗留時間,增加了被垃圾回收的可能性。
2.垃圾回收算法
垃圾回收算法可以分為三類,都基于標記-清除(復制)算法:
Serial算法(單線程)
并行算法
并發(fā)算法
JVM會根據(jù)機器的硬件配置對每個內存代選擇適合的回收算法,比如,如果機器多于1個核,會對年輕代選擇并行算法,關于選擇細節(jié)請參考JVM調優(yōu)文檔。
稍微解釋下的是,并行算法是用多線程進行垃圾回收,回收期間會暫停程序的執(zhí)行,而并發(fā)算法,也是多線程回收,但期間不停止應用執(zhí)行。所以,并發(fā)算法適用于交互性高的一些程序。經過觀察,并發(fā)算法會減少年輕代的大小,其實就是使用了一個大的年老代,這反過來跟并行算法相比吞吐量相對較低。
以上就是動力節(jié)點Java培訓機構小編介紹的“Java架構師全套視頻,知識要點整理”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業(yè)
業(yè)余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習