1. 程式人生 > >【轉】歸納一個從某課程薅來的Java架構學習計劃和知識體系-給自己記錄一下(趕緊學)

【轉】歸納一個從某課程薅來的Java架構學習計劃和知識體系-給自己記錄一下(趕緊學)

1.Java基礎-原始碼

1. 常用的設計模式

  • Proxy代理模式
  • Factory工廠模式
  • Singleton單例模式
  • Delegate委派模式
  • Strategy策略模式
  • Prototype原型模式
  • Template模版模式
  • Decorator裝飾器模式
  • Observer觀察者模式

2. Spring5原始碼和層次分析

  • Beans

    1.介面例項化
    2.代理Bean操作

  • Context

    1.IOC容器的設計原理及高階特性
    2.AOP設計原理
    3.FactoryBean和BeanFactory

  • Transaction

    1.宣告式事務底層原理
    2.Spring事務處理機制
    3.事務的傳播與監控
    4.基於SpringJDBC手寫ORM框架

  • MVC

    1.MVC原理
    2.與IOC容器整合
    3.HandlerMapping實現原理
    4.HandlerAdapter實現原理
    5.ViewResolver實現原理
    6.Controller呼叫原理
    7.動態引數匹配原理
    8.SpringMVC與Struts2對比
    9.手動實現SpringMVC框架

  • Spring5新特性

    1.Spring5.x相容性
    2.多序列化資料格式繫結API
    3.函式式風格的ApplicationContext
    4.Kotlin表示式
    5.WebFlux模組
    6.Testing改進

3. Mybatis原始碼和層次分析

  • 程式碼自動生成器:Generator
  • Mybatis下:1對多、多對多 巢狀結果、巢狀查詢
  • 一級快取、二級快取使用場景及選擇策略
  • Mybatis與Spring整合:Spring-Mybatis.jar
  • Spring整合下的SqlSession與Mapper
  • Mybatis的事務
  • Mybatis的動態代理的實現
  • 手動實現Mybatis1.0->2.0

2.分散式架構

1. 漫談分散式架構

  • 分散式架構概念及意義

  • 如何把應用從單機擴充套件到分散式

  • 大型分散式架構演進過程

  • 構建分散式架構最重要因素

    1.CDN加速靜態檔案訪問
    2.分散式儲存
    3.分散式搜尋引擎
    4.應用釋出與監控
    5.應用容災及機房規劃
    6.系統動態擴容

  • 分散式架構設計

    1.主流架構模型-SOA架構及微服務架構
    2.領域驅動設計及業務驅動劃分
    3.分散式架構的基本理論CAP、BASE及其應用
    4.什麼是分散式架構下的高可用設計
    5.分散式架構下的可伸縮設計
    6.構建高效能的分散式架構

2. 分散式架構策略-分而治之

  • 從網路通訊探究分散式通訊的原理

  • 基於訊息方式的系統間通訊

  • 理解通訊協議傳輸過程中的序列化和反序列化的機制

  • 基於框架的RPC通訊技術

    a.Webservice/Apache CXF
    b.RMI/Spring RMI
    c.Hessian
    d.Motan(新浪)

  • 傳統RPC技術在大型分散式架構下面臨的問題

  • 分散式架構下的RPC解決方案

  • Zookeeper分散式系統的基石

    a.學習搭建Zookeeper叢集
    b.深入分析ZK在disconf配置中心的應用
    c.基於ZK的分散式鎖解決方案
    d.Zookeeper Watcher核心機制深入原始碼分析
    e.Zookeeper叢集升級、遷移
    f.基於Zookeeper實現分散式伺服器動態上下線感知
    g.Zookeeper Zab協議及選舉機制原始碼

  • 使用Dubbo對單一應用服務化改造

    a.Dubbo管理中心及監控平臺安裝部署
    b.Dubbo分散式服務模組劃分(領域驅動)
    c.基於Dubbo的分散式系統架構實戰
    d.Dubbo負載均衡策略分析
    e.Dubbo服務除錯之服務只訂閱及服務只註冊配置
    f.Dubbo服務介面設計原則
    g.Dubbo設計原理及原始碼分析
    h.基於Dubbo構建大型分散式電商平臺實戰雛形
    i.Dubbo容錯機制及高擴充套件性分析

    3. 分散式架構中介軟體

    • 分散式訊息通訊

      a.訊息中介軟體在分散式架構中的應用
      b.ActiveMQ

       -ActiveMQ高可用叢集企業級部署方案
       -ActiveMQ P2P及PUB/SUB模型詳解
       -ActiveMQ訊息確認以及重發策略
       -ActiveMQ基於Spring完成分散式訊息佇列實戰
      

      c.Kafka

       -Kafka基於ZK搭建高可用叢集
       -Kafka訊息處理過程解析
       -Java客戶端實現Kafka生產者與消費者例項
       -Kafka的副本機制及選舉原理解析
       -基於Kafka實現應用日誌實時上報統計分析
      

      d.RabbitMQ

       -初步認識RabbitMQ及高可用叢集部署
       -詳解RabbitMQ訊息分發機制及主題訊息分發
       -RabbitMQ訊息路由機制分析
       -RabbitMQ訊息確認機制
      

      e.Elasticsearch

    • 分散式快取Redis
      a.Redis的資料結構分析
      b.Redis主從複製原理及無磁碟複製分析
      c.Redis管道模式詳解
      d.Redis快取與資料庫一致性問題解決方案
      e.基於Redis實現分散式鎖
      f.Redis中AOF和RDB持久化策略的原理
      g.Redis讀寫分離架構
      h.Redis哨兵架構及資料丟失問題分析
      i.Redis Cluster資料分佈演算法之 Hash slot
      j.Redis使用常見問題及效能優化思路
      k.Redis高可用及高伸縮架構實戰
      l.快取擊穿、快取雪崩預防策略
      m.Redis批量查詢優化
      n.Redis高效能叢集之twenproxy or codis

    • 資料儲存
      a.mongoDB

       -NoSQL簡介及MongoDB基本概念
       -MongoDB支援的資料型別分析
       -MongoDB視覺化客戶端及Java API實踐
       -手動實現基於MongoDB的ORM框架
       -MongoDB企業級叢集解決方案
       -MongoDB聚合、索引及基本執行命令
       -MongoDB資料分片、轉存及恢復策略
      

      b.MyCat

       -MySQL主從複製及讀寫分離
       -MySQL+KeepAlived實現雙主高可用方案實踐
       -MySQL高效能解決方案之分庫分表
       -資料中介軟體Mycat
       -基於Mycat實現MySQL資料庫讀寫分離
       -Mycat全域性表,ER表,分片策略分析
      
    • Nginx後臺服務

    • 高效能NIO框架Netty

    4. 分散式解決方案

3.微服務架構

4.併發程式設計

5.程式碼效能優化

6.工程化與工具

7.專案實戰(可選)