適用人群
由Java、Java Web、Spring、Spring MVC、MyBatis、Maven、Linux基礎
教程中涵蓋的技術點包括 Dubbo分布式服務、ZooKeeper注冊中心、Redis3.0分布式緩存集群、MySQL讀寫分離集群、FastDFS_v5.05分布式文件系統(tǒng)集群、ActiveMQ5.11群集、Keepalived + Nginx實現(xiàn)的高可用Web負載均衡集群、基于Redis3.0集群實現(xiàn)會話共享的Tomcat集群、基于Hudson持續(xù)集成實現(xiàn)的自動化構(gòu)建與部署、Maven私有庫Nexus的安裝與使用、SonarQube代碼質(zhì)量管理平臺的安裝與使用等。
前言
一、什么是分布式框架
分布式系統(tǒng)是若干獨立系統(tǒng)的集合,但是用戶使用起來像是在使用一套系統(tǒng)
二、為什么需要分布式系統(tǒng)?
規(guī)模的逐步擴大和業(yè)務的復雜,單臺計算機扛不住雙十一那樣的流量,俗話說:三個臭皮匠抵一個諸葛亮。
三、應用架構(gòu)的發(fā)展演變
(1)單一架構(gòu)
當網(wǎng)站流量很小的時候,我們將所有的應用(業(yè)務)放到一臺服務器上,打包運行公司管理系統(tǒng)/超市收銀系統(tǒng)優(yōu)點:開發(fā)簡單,部署簡單
缺點:擴展不容易(怎么處理日益增長的流量),誰都改一個,維護不容易,性能提升難
(2)垂直應用架構(gòu)
將大應用拆分成為小應用(一般按照業(yè)務拆分),根據(jù)不同的訪問頻率決定各自業(yè)務部署的服務器數(shù)量
優(yōu)點擴展容易
缺點:頁面一改,可能造成整個項目重新部署,業(yè)務和界面沒有分離開,隨著業(yè)務種類增加,怎么解決業(yè)務之間的互相調(diào)用問題,訂單服務器和用戶服務器交互效率的問題
(3)分布式架構(gòu)(基于RPC:遠程過程調(diào)用)將業(yè)務拆分后,用某種方式實現(xiàn)各個業(yè)務模塊的遠程調(diào)用和復用,這時一個好的RPC框架就決定了你的分布式架構(gòu)的性能,怎么調(diào)用,何時調(diào)用,服務器掛了怎么辦.…….我們需要一個框架來幫我們解決這個問題(當然大大神可以自己寫一個,但是應對大流量的成功者莫過于中國的阿里巴巴公司,頂住了淘寶雙十一的流量,反觀一些學校內(nèi)部的選課系統(tǒng),對于大流量時只有兩個字-宕機)。