1. 程式人生 > >JAVA高階軟體架構師實戰培訓階段一

JAVA高階軟體架構師實戰培訓階段一

第01節課:整體課程內容概覽

-----------------------以下為Maven補充和Git部分------------------------------------------------------------------

第02節課:Maven補充:分模組、分工程管理
第03節課:Maven補充:多模組,多Web應用,合併成一個War包
第04節課:Git快速上手:Git簡介、基本原理、安裝、Git伺服器配置、外掛Egit
第05節課:Git快速上手:TortoiseGit的本地使用
第06節課:Git快速上手:Egit的本地使用
第07節課:Git快速上手:TortoiseGit和Egit的遠端使用,以及衝突解決,包括:內容衝突、樹衝突、邏輯衝突

-----------------------以下為基本業務功能塊構建部分
------------------------------------------------------------------

第08節課:要完成的基本業務功能介紹、基本的資料字典
第09節課:搭建基礎的開發環境:Eclipse+Maven+Git
第10節課:使用Spring+Mybatis來實現Customer的DAO部分
第11節課:Mybatis的分頁實現,DAO的簡單測試
第12節課:Service部分的實現,以及基本的基礎模組開發
第13節課:基於Spring MVC實現Web層開發
第14節課:基本的新增和列表頁面,還有分頁的tag開發和測試
第15節課:帶查詢條件的分頁、修改和刪除頁面的開發和測試
第16節課:查詢頁面、Mybatis動態查詢的實現,Json的自動拼裝
第17節課:提煉公共的Webmodel,開始X-gen生成的模板製作,做DAO部分的模板
第18節課:製作X-gen生成需要的service、web層需要的模板
第19節課:製作X-gen生成需要的資料,以及相應的Visitor
第20節課:製作X-gen生成需要的Action,還有部分的Visitor
第21節課:通過X-gen生成商品模組,並調整整個生成的模板和程式
第22節課:通過X-gen生成購物車模組,並調整整個生成的模板和程式
第23節課:通過X-gen來生成訂單主模組、明細模組,還有庫存管理模組
第24節課:給客戶管理模組加入ehcache,然後把現有的工程加入到Git中
第25節課:實現前端的業務登入、首頁等功能
第26節課:測試並調整登入的業務功能,使用Cookie來儲存使用者資訊
第27節課:實現index功能的開發
第28節課:Index和商品詳細描述頁面實現,購物車的實現
第29節課:完成下訂單和修改庫存的功能
第30節課:把基礎的業務應用配置並部署到Linux伺服器上去

-----------------------以下為Nginx部分
------------------------------------------------------------------

第31節課:Nginx簡介、安裝和基本執行
第32節課:Nginx的程序結構、基本配置等
第33節課:Nginx常用核心模組指令的功能和配置使用
第34節課:Nginx的Http模組部分的功能和配置使用
第35節課:Nginx的Location區段的功能和配置使用
第36節課:Nginx的反向代理模組的功能和配置使用
第37節課:Nginx結合實際應用,來實現反向代理和動靜分離的功能
第38節課:Nginx的負載均衡模組,以及結合實際應用的配置
第39節課:Nginx的Rewrite模組的配置和使用
第40節課:Nginx更多模組的基本功能和配置,常見功能的配置示例
第41節課:Nginx的配置優化以及使用建議
第42節課:應用上Nginx過後的體系結構,以及在更大訪問量下,體系結構如何變化

-----------------------以下為Varnish部分
------------------------------------------------------------------

第43節課:Varnish簡介、安裝和基本使用
第44節課:VCL簡介、基本語法和基本配置使用,包括負載均衡的配置使用
第45節課:VCL來配置實現健康檢查、ACL訪問控制等功能
第46節課:Grace模式和Saint模式的理解和應用
第47節課:VCL常用的函式和常用的Http頭
第48節課:VCL的子程式,Ation和理解Request流程
第49節課:VCL的變數,常見的VCL應用片斷
第50節課:使用CLI來管理Varnish,掌握如何清除快取,varnishadm命令
第51節課:Varnishd命令和執行期引數,理解引數和選項的功能
第52節課:Varnish的日誌操作和Varnish的共享記憶體:Varnishlog、Varnishtop、Varnishhist、Varnishsizes、Varnishnsca、Varnishreplay
第53節課:規劃Varnish的快取大小;Varnishstat統計資訊;提高Varnish的命中率
第54節課:Varnish的效能調優和基本的配置使用建議
第55節課:把Varnish和基本應用,還有Nginx組合起來使用
第56節課:基本的效能測試;Varnish的監控和初步優化
第57節課:應用上Varnish後的體系結構,以及體系結構的演變

-----------------------以下為Memcached部分------------------------------------------------------------------

第58節課:Memcached簡介、快取的含義、安裝、基本配置、啟動和基本使用
第59節課:Memcached基本的工作原理、兩階段雜湊;Memcached的操作命令:set、add、replace、append、prepend、cas、get 、 gets、delete、incr/decr等
第60節課:stats命令、stats sizes命令、flush_all命令、version命令、stats settings、stats items、stats slabs區塊統計等
第61節課:理解Memcached的資料儲存方式,理解Slab Allocator的方式、理解新建Item分配記憶體過程
第62節課:記憶體分配的Chunk、Slab分配演示、Memcached的資料儲存方式的缺點;理解Memcached的資料過期方式:延遲/惰性 過期,LRU,懶惰刪除機制
第63節課:Memcached的Java客戶端開發、Memcached和Spring整合開發
第64節課:理解Memcached的分散式方式、分散式中根據餘數計算分散的方式、一致性Hash演算法、虛擬節點
第65節課:Memcached記憶體調優建議,調優目標、調優方法,常見問題的解決,使用Memcached-tool來輔助調優
第66節課:Memcached的限制和使用建議,Memcached的典型適用場景,不適合使用Memcached的場景;Memcached的批量匯入匯出
第67節課:分析到底把哪些內容放到Memcached裡面進行快取,Memcached結合業務功能進行開發
第68節課:繼續Memcached結合業務功能進行開發和測試
第69節課:Nginx+Varnish+基本業務功能+Memcached結合開發使用,進行基本的效能測試,Memcached的監控和初步優化
第70節課:現有的系統,應用上Memcached後的體系結構,思考體系結構如何演變

-----------------------以下為ActiveMQ部分------------------------------------------------------------------

第71節課:ActiveMQ簡介、功能和特點;訊息中介軟體;ActiveMQ安裝和基本使用;訊息收發HelloWorld
第72節課:JMS基本概念,PTP和Pub/Sub域、JMS的訊息結構:訊息頭,屬性和訊息體
第73節課:JMS的可靠性機制、訊息的接收確認、持久化、過期、優先順序、臨時目的地、持久訂閱本地事務等;PTP模型;Pub/Sub模型
第74節課:JMS的API結構,一個JMS應用開發的基本步驟;程式碼示例非持久的Topic訊息收發;程式碼示例持久的Topic訊息收發
第75節課:Broker的啟動方式,內嵌到Java中啟動Broker,利用Spring整合啟動Broker
第76節課:ActiveMQ結合Spring開發:環境設定、Spring配置、Queue訊息收發;Topic訊息收發;ActiveMQ結合Spring開發最佳實踐和建議
第77節課:連線到ActiveMQ,ActiveMQ支援的傳輸協議和配置:TCP、NIO、UDP、VM、SSL、HTTP/Https等協議
第78節課:ActiveMQ的訊息儲存持久化;KahaDB的方式、AMQ的方式、JDMC的方式、Memory的方式
第79節課:在一臺伺服器上啟動多個Broker;ActiveMQ的靜態網路連結;Static networkConnector的基本原理;networkConnector配置的可用屬性
第80節課:演示在static橋接下,多執行緒的consumer訪問叢集,消費訊息的不均衡性;
第81節課:理解丟失的訊息這種場景,配置和演示static叢集下的訊息迴流功能
第82節課:容錯的連結,Failover協議,可用的配置引數;ActiveMQ的動態網路連結:多播協議multicast,Discovery協議,Peer協議,Fanout協議
第83節課:ActiveMQ的叢集:Queue的消費者叢集、Broker叢集、Master Slave(基於共享儲存的、JDBC實現的、複製LevelDB的方式)
第84節課:Destination高階特性:萬用字元、組合佇列、Configure Startup Destinations、刪除不活動的Destinations、Destination Options
第85節課:Destination高階特性:虛擬Destinations、虛擬主題、映象佇列、Per Destination Policies
第86節課:Message Dispatch高階特性:訊息遊標(Store-based、VM、File-based)、非同步傳送
第87節課:Message Dispatch高階特性:Dispatch Policies(嚴格順序分發策略、輪詢分發策略)
第88節課:Message Dispatch高階特性:Optimized Acknowledgement、生產者流量控制
第89節課:Message高階特性:Message Properties、Advisory Message、延遲和定時訊息投遞
第90節課:Message高階特性:Blob Messages、Message Transformation
第91節課:Consumer高階特性:獨有消費者、消費者非同步分發、優先順序、管理持久訂閱者、訊息組
第92節課:Consumer高階特性:訊息選擇器、重投遞策略、慢消費者處理
第93節課:監控和管理Broker、整合ActiveMQ和Tomcat
第94節課:什麼時候使用ActiveMQ、ActiveMQ優化和使用建議
第95節課:應用ActiveMQ:分析到底把哪些功能用ActiveMQ來輔助實現,ActiveMQ結合業務功能的開發第一部分
第96節課:ActiveMQ結合業務功能的開發第二部分,並測試相應的功能
第97節課:ActiveMQ結合業務功能的開發第三部分,並測試相應的功能,然後上傳到伺服器上
第98節課:Nginx+Varnish+基本業務功能+Memcached+ActiveMQ組合執行測試
第99節課:基本的效能測試分成兩種,一種是Nginx+Varnish+基本業務功能+Memcached,另外一種是Nginx+Varnish+基本業務功能+Memcached+ActiveMQ
第100節課:應用上ActiveMQ後的體系結構,以及今後系統架構的演變

-----------------------以下為MongoDB部分------------------------------------------------------------------

第101節課:本部分課程總體概覽,MongoDB簡介:是什麼、NoSQL的優缺點、CAP定理和BASE原則、MongoDB的特點
第102節課:MongoDB安裝和基本使用,MongoDB啟動引數說明
第103節課:MongoDB基本概念:資料庫、集合、文件、_id、基本資料型別等
第104節課:MongoDB增刪改操作第一部分
第105節課:MongoDB增刪改操作第二部分
第106節課:MongoDB查詢操作第一部分:指定需要返回的鍵、按條件查詢,包括多種操作符、正則表示式
第107節課:MongoDB查詢操作第二部分:查詢陣列、查詢內嵌文件、分頁、排序、遊標、儲存過程等
第108節課:聚合框架第一部分:概念、管道操作符($match、$project、$group、$sort、$limit)
第109節課:聚合框架第二部分:$group、$unwind、$sort等的操作使用,MapReduce的開發使用
第110節課:聚合框架第三部分:更多MapReduce可選的鍵、聚合命令group的使用
第111節課:理解MongoDB的文件儲存機制
第112節課:MongoDB的索引第一部分:建立、修改、刪除索引,以及分析使用索引對查詢的影響
第113節課:MongoDB的索引第二部分:hint、強制全表掃描、唯一索引、複合索引、索引的集合等
第114節課:Capped集合:功能、基本原理、建立和使用的語法;用GridFS儲存檔案:功能介紹、基本操作、基本原理
第115節課:MongoDB的副本集第一部分:副本集簡介、建立副本集、副本集的使用、rs函式、rs.status的說明
第116節課:MongoDB的副本集第二部分:修改副本集配置、副本集中主節點的確定、成員配置選項——選舉仲裁者、優先順序、隱藏成員、延遲備份節點、建立索引
第117節課:MongoDB副本集的基本原理:操作日誌oplog、初始化同步的步驟、處理陳舊資料、心跳、成員狀態、回滾等
第118節課:MongoDB副本集的管理和MongoDB主從複製:以單機模式啟動成員、副本集的配置、建立比較大的副本集、強制重新配置、把主節點變為備份節點等等;MongoDB主從複製
第119節課:MongoDB的分片第一部分:分片功能介紹、分片和複製、Mongos、配置伺服器、啟動mongos程序、將副本集轉換成為分片
第120節課:MongoDB的分片第二部分:資料分片、指定分片的集合、分片的詳盡示例
第121節課:MongoDB的分片第三部分:塊、拆分塊、均衡器、限制分片大小、叢集對資料的影響、理解MongoDB分片資料的分配方式 —— 一分片多區間等
第122節課:MongoDB分片的片鍵選擇:片鍵選擇的重要性、片鍵規則、片鍵的幾種型別:小基數片鍵、升序片鍵、隨機分發的片鍵、基於某個業務的片鍵,以及好片鍵的建議
第123節課:MongoDB分片的管理:列出所有的Shard、檢視分片資訊、檢視叢集資訊摘要、檢查配置資訊、刪除分片等
第124節課:監控應用狀態:檢視正在進行的操作、系統分析器system.profile;使用者身份驗證;
第125節課:備份和恢復,以及 資料匯入匯出
第126節課:Java操作MongoDB:獲取驅動、連線MongoDB服務、連線池的配置、操作MongoDB
第127節課:MongoDB和Spring整合開發:整合、使用MongoTemplate來進行資料的CRUD
第128節課:MongoDB應用建議及最佳實踐
第129節課:分析應用MongoDB的功能,MongoDB結合到應用的開發實現一
第130節課:MongoDB結合到應用的開發實現二,並上傳伺服器測試
第131節課:應用上MongoDB後的體系結構變化、今後架構的繼續變化

-----------------------以下為MogileFS部分------------------------------------------------------------------

第132節課:MogileFS簡介、是什麼、有什麼、能幹什麼,以及特點和適用性;
第133節課:通過原始碼安裝MogileFS、基本的配置等
第134節課:理解MogileFS的基本概念、使用方式和各種命令
第135節課:理解MogileFS,包括:高層流程、儲存節點、表說明
第136節課:MogileFS的Java客戶端開發,包括:基本的Java客戶端開發,和Spring整合開發
第137節課:基於MogileFS的小應用示例第一部分:構建好整個工程的開發環境和準備
第138節課:基於MogileFS的小應用示例第二部分:使用x-gen來生成新的模組,並除錯通過CRUD的功能
第139節課:基於MogileFS的小應用示例第三部分:使用Spring web MVC來實現檔案的上傳下載
第140節課:基於MogileFS的小應用示例第四部分:把上傳的檔案儲存到MogileFS裡面,並能從裡面獲取到檔案
第141節課:MogileFS和Nginx的整合,MogileFS和Memcached的整合
第142節課:應用上MogileFS之後,系統體系結構的變化,以及檔案更多,訪問更頻繁的情況下,體系結構的變化

-----------------------以下為階段一最後的小結和整體部署部分------------------------------------------------------------------

第143節課:階段一小結,階段一構建的基本架構,部署的環境介紹和部署計劃
第144節課:整理階段一的程式碼和配置,把整個工程打成一個可以部署的war,併發布到伺服器上
第145節課:配置伺服器端的nginx和varnish,配置MogileFS,並測試通過
第146節課:配置Memcached和MongoDB,並測試執行通過
第147節課:配置ActiveMQ,並通過web應用呼叫,測試執行通過
第148節課:階段一之後的發展方向,以及在更高的併發,更大的資料量的情況下,整個系統架構的演變思路