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