得提供者提供的服務將接口暴露出去,供移動端或前端使用,消費者在Consumer.xml中配置消費者要消費的接口的全路徑并通過Spring容器applicat1nContext.xml加載;
[0034]步驟五、配置redis,使用redis進行緩存,以增加系統(tǒng)接口的訪問速度,增加系統(tǒng)網(wǎng)絡吞吐莖;
[0035]步驟六、系統(tǒng)涉及到文件的上傳,因此需要使用到文件服務器,本系統(tǒng)采用七牛存儲空間作為文件存儲地址,通過參考七牛的API文檔進行相應的配置和生成uptoken即可提供文件上傳功能。
[0036]以下對采用本發(fā)明的方法構建的系統(tǒng)進行詳細說明。
[0037]整個系統(tǒng)利用dubbo框架進行解耦,分為服務提供者和服務消費者,如圖1所示,圖中小方塊 Pro toco I ,Cluster ,Proxy, Service ,Container ,Registry ,Moni tor代表層或模塊,其中Proxy、Service表示與業(yè)務有交互,其余的表示只對Dubbo內(nèi)部交互。圖中方塊Consumer ,Provider ,Registry ,Monitor代表部署邏輯拓普節(jié)點。圖中第I步和第2步箭頭為初始化時調用,第5步為運行時異步調用,第3步和第4步為運行時同步調用。圖中只包含RPC的層,不包含Remoting的層,Remoting整體都隱含在Protocol中。
[0038]使用redis緩存數(shù)據(jù)的查詢接口,增加系統(tǒng)查詢效率,為了提升系統(tǒng)的健壯性,采用redis master-slave主從模式。redis server設置為另一個redis server的主機(從機),從機定期從主機拿數(shù)據(jù)。這樣一來master-slave的分布看起來就是一個有向無環(huán)圖DAG,如此形成redis server集群,無論是主機還是從機都是redis server,都可以提供服務。
[0039]系統(tǒng)發(fā)布到服務器使用nginx實現(xiàn)負載均衡,降低服務器單點壓力,提升系統(tǒng)性能。使用簡單的加權輪訓策略,首先,如果可以把加權輪詢算法分為先深搜索和先廣搜索,那么nginx采用的是先深搜索算法,即將首先將請求都分給高權重的機器,直到該機器的權值降到了比其他機器低,才開始將請求分給下一個高權重的機器。然后,當所有后端機器都down掉時,nginx立即將所有機器的標志位清成初始狀態(tài),以避免造成所有的機器都處在t imeout的狀態(tài),從而導致整個前端被窮住。
[0040]如圖2所示,利用dubbo提供者-消費者模式對系統(tǒng)進行解耦,提供者在配置文件Provider.xml中配置接口路徑并注冊在zookeeper注冊中心,消費者在zookeeper中取得該接口便能消費該接口的所有的服務,移動App或瀏覽器在訪問暴露的rest接口的時候利用nginx負載均衡策略提升系統(tǒng)的性能,降低系統(tǒng)的壓力。同時使用redis集群緩存一些服務,這樣消費再次消費一些服務時直接從內(nèi)存中讀取,響應速度非???,提供更優(yōu)質的客戶體驗。對于修改的操作,同時更新MySQL和redis數(shù)據(jù)保持數(shù)據(jù)同步。
【主權項】
1.一種基于nginx負載均衡的dubbo分布式集群系統(tǒng)架構方法,其特征在于,包括如下步驟: 步驟一、搭建開發(fā)環(huán)境,包括安裝JDKl.8、配置JAVA環(huán)境變量、安裝開發(fā)工具Intel I i JIDEA 14.0、配置 MAVEN 及安裝 Redis; 步驟二、設計系統(tǒng)的架構,使用nginx實現(xiàn)負載均衡,使用redis實現(xiàn)集群訪問,使用dubbo實現(xiàn)服務提供者與消費者分離; 步驟三、提供者提供dubbo服務配置在Provider.xml文件中并注冊在zookeeper注冊中心,通過Spring applicat1nContext.xml文件載入,服務消費者在Consumer.xml中配置需要消費的接口 ; 步驟四、以war包方式部署系統(tǒng)到服務器,瀏覽器或移動App訪問系統(tǒng)時,利用nginx實現(xiàn)負載均衡,采用權重策略分發(fā)服務。2.如權利要求1所述的一種基于nginx負載均衡的dubbo分布式集群系統(tǒng)架構方法,其特征在于,使用redis進行集群訪問時,數(shù)據(jù)庫采用MySQL。3.如權利要求1或2所述的一種基于nginx負載均衡的dubbo分布式集群系統(tǒng)架構方法,其特征在于, 步驟三包括:將服務提供者所包括的服務的接口全路徑配置在dubbo服務提供者配置文件Provider.xml中進行注冊,并在Provider.xml中配置好注冊中心地址、端口號以及超時間隔,通過Spr ing的容器文件applicat1nContext.xml將提供者Provider.xml加載使得系統(tǒng)提供者接口暴露出去。4.如權利要求3所述的一種基于nginx負載均衡的dubbo分布式集群系統(tǒng)架構方法,其特征在于,所述服務提供者提供的服務包括應用插件、用戶中心、代理服務及容器服務。5.如權利要求4所述的一種基于nginx負載均衡的dubbo分布式集群系統(tǒng)架構方法,其特征在于,服務消費者在Consumer.xml中配置需要消費的接口包括:確定系統(tǒng)的服務消費者,消費者取得服務提供者提供的服務將接口暴露出去,供移動端或前端使用,消費者在Consumer.xml中配置消費者要消費的接口的全路徑并通過Spring容器applicat1nContext.xml 加載。6.如權利要求1所述的一種基于nginx負載均衡的dubbo分布式集群系統(tǒng)架構方法,其特征在于,架構過程中,通過文件服務器進行文件上傳。
【專利摘要】本發(fā)明涉及分布式集群系統(tǒng),目的是為了解決現(xiàn)有的分布式集群系統(tǒng)架構相應速度慢、吞吐容量低的問題。本發(fā)明提供一種基于nginx負載均衡的dubbo分布式集群系統(tǒng)架構方法,包括如下步驟:步驟一、搭建開發(fā)環(huán)境,包括安裝JDK1.8、配置JAVA環(huán)境變量、安裝開發(fā)工具IntelliJ?IDEA?14.0、配置MAVEN及安裝Redis;步驟二、設計系統(tǒng)的架構,使用nginx實現(xiàn)負載均衡,使用redis實現(xiàn)集群訪問,使用dubbo實現(xiàn)服務提供者與消費者分離;步驟三、提供者提供dubbo服務配置在Provider.xml文件中并注冊在zookeeper注冊中心,通過Spring?applicationContext.xml文件載入,服務消費者在Consumer.xml中配置需要消費的接口;步驟四、以war包方式部署系統(tǒng)到服務器,瀏覽器或移動App訪問系統(tǒng)時,利用nginx實現(xiàn)負載均衡,采用權重策略分發(fā)服務。本發(fā)明適用于分布式集群系統(tǒng)架構。
【IPC分類】H04L29/08
【公開號】CN105554160
【申請?zhí)枴緾N201610064362
【發(fā)明人】朱曉龍, 李偉
【申請人】四川長虹電器股份有限公司
【公開日】2016年5月4日
【申請日】2016年1月29日