日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php框架 > 框架設(shè)計(jì) > Dubbo 與 Zookeeper、SpringMVC整合和使用(負(fù)載均衡、容錯(cuò))

Dubbo 與 Zookeeper、SpringMVC整合和使用(負(fù)載均衡、容錯(cuò))

來(lái)源:程序員人生   發(fā)布時(shí)間:2016-06-16 18:05:44 閱讀次數(shù):5869次

聯(lián)網(wǎng)的發(fā)展,網(wǎng)站利用的范圍不斷擴(kuò)大,常規(guī)的垂直利用架構(gòu)已沒(méi)法應(yīng)對(duì),散布式服務(wù)架構(gòu)和活動(dòng)計(jì)算架構(gòu)勢(shì)在必行,Dubbo是1個(gè)散布式服務(wù)框架,在這類情況下誕生的。現(xiàn)在核心業(yè)務(wù)抽取出來(lái),作為獨(dú)立的服務(wù),使前端利用能更快速和穩(wěn)定的響應(yīng)。

 

第1:介紹Dubbo背景

 

    

大范圍服務(wù)化之前,利用可能只是通過(guò)RMI或Hessian等工具,簡(jiǎn)單的暴露和援用遠(yuǎn)程服務(wù),通過(guò)配置服務(wù)的URL地址進(jìn)行調(diào)用,通過(guò)F5等硬件進(jìn)行負(fù)載均衡。

(1) 當(dāng)服務(wù)愈來(lái)愈多時(shí),服務(wù)URL配置管理變得非常困難,F(xiàn)5硬件負(fù)載均衡器的單點(diǎn)壓力也愈來(lái)愈大。

此時(shí)需要1個(gè)服務(wù)注冊(cè)中心,動(dòng)態(tài)的注冊(cè)和發(fā)現(xiàn)服務(wù),使服務(wù)的位置透明。

并通過(guò)在消費(fèi)方獲得服務(wù)提供方地址列表,實(shí)現(xiàn)軟負(fù)載均衡和Failover,下降對(duì)F5硬件負(fù)載均衡器的依賴,也能減少部份本錢。

(2) 當(dāng)進(jìn)1步發(fā)展,服務(wù)間依賴關(guān)系變得錯(cuò)蹤復(fù)雜,乃至分不清哪一個(gè)利用要在哪一個(gè)利用之前啟動(dòng),架構(gòu)師都不能完全的描寫利用的架構(gòu)關(guān)系。

這時(shí)候,需要自動(dòng)畫出利用間的依賴關(guān)系圖,以幫助架構(gòu)師理清算關(guān)系。

(3) 接著,服務(wù)的調(diào)用量愈來(lái)愈大,服務(wù)的容量問(wèn)題就暴露出來(lái),這個(gè)服務(wù)需要多少機(jī)器支持?甚么時(shí)候該加機(jī)器?

為了解決這些問(wèn)題,第1步,要將服務(wù)現(xiàn)在每天的調(diào)用量,響應(yīng)時(shí)間,都統(tǒng)計(jì)出來(lái),作為容量計(jì)劃的參考指標(biāo)。

其次,要可以動(dòng)態(tài)調(diào)劑權(quán)重,在線上,將某臺(tái)機(jī)器的權(quán)重1直加大,并在加大的進(jìn)程中記錄響應(yīng)時(shí)間的變化,直到響應(yīng)時(shí)間到達(dá)閥值,記錄此時(shí)的訪問(wèn)量,再以此訪問(wèn)量乘以機(jī)器數(shù)反推總?cè)萘俊?/p>

 

第2:Dubbo的簡(jiǎn)介

 

Dubbo是1個(gè)散布式服務(wù)框架,解決了上面的所面對(duì)的問(wèn)題,Dubbo的架構(gòu)如圖所示:

 

節(jié)點(diǎn)角色說(shuō)明:

Provider: 暴露服務(wù)的服務(wù)提供方。

Consumer: 調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費(fèi)方。

Registry: 服務(wù)注冊(cè)與發(fā)現(xiàn)的注冊(cè)中心。

Monitor: 統(tǒng)計(jì)服務(wù)的調(diào)用次調(diào)和調(diào)用時(shí)間的監(jiān)控中心。

Container: 服務(wù)運(yùn)行容器。

 

調(diào)用關(guān)系說(shuō)明:

0. 服務(wù)容器負(fù)責(zé)啟動(dòng),加載,運(yùn)行服務(wù)提供者。

1. 服務(wù)提供者在啟動(dòng)時(shí),向注冊(cè)中心注冊(cè)自己提供的服務(wù)。

2. 服務(wù)消費(fèi)者在啟動(dòng)時(shí),向注冊(cè)中心定閱自己所需的服務(wù)。

3. 注冊(cè)中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更,注冊(cè)中心將基于長(zhǎng)連接推送變更數(shù)據(jù)給消費(fèi)者。

4. 服務(wù)消費(fèi)者,從提供者地址列表中,基于軟負(fù)載均衡算法,選1臺(tái)提供者進(jìn)行調(diào)用,如果調(diào)用失敗,再選另外一臺(tái)調(diào)用。

5. 服務(wù)消費(fèi)者和提供者,在內(nèi)存中累計(jì)調(diào)用次數(shù)和調(diào)用時(shí)間,定時(shí)每分鐘發(fā)送1次統(tǒng)計(jì)數(shù)據(jù)到監(jiān)控中心。

 Dubbo提供了很多協(xié)議,Dubbo協(xié)議、RMI協(xié)議、Hessian協(xié)議,我們查看Dubbo源代碼,有各種協(xié)議的實(shí)現(xiàn),如圖所示:

 

我們之前沒(méi)用Dubbo之前時(shí),大部份都使用Hessian來(lái)使用我們服務(wù)的暴露和調(diào)用,利用HessianProxyFactory調(diào)用遠(yuǎn)程接口。

 

上面是參考了Dubbo官方網(wǎng)介紹,接下來(lái)我們來(lái)介紹SpringMVC、Dubbo、Zookeeper整合使用。

 

第3:Dubbo與Zookeeper、SpringMVC整合使用

  

  第1步:在Linux上安裝Zookeeper

 

       Zookeeper作為Dubbo服務(wù)的注冊(cè)中心,Dubbo本來(lái)基于數(shù)據(jù)庫(kù)的注冊(cè)中心,沒(méi)采取Zookeeper,Zookeeper1個(gè)散布式的服務(wù)框架,是樹(shù)型的目錄服務(wù)的數(shù)據(jù)存儲(chǔ),能做到集群管理數(shù)據(jù) ,這里能很好的作為Dubbo服務(wù)的注冊(cè)中心,Dubbo能與Zookeeper做到集群部署,當(dāng)提供者出現(xiàn)斷電等異常停機(jī)時(shí),Zookeeper注冊(cè)中心能自動(dòng)刪除提供者信息,當(dāng)提供者重啟時(shí),能自動(dòng)恢復(fù)注冊(cè)數(shù)據(jù),和定閱要求。我們先在linux上安裝Zookeeper,我們安裝最簡(jiǎn)單的單點(diǎn),集群比較麻煩。

    (1)下載Zookeeper⑶.4.6.tar.gz  

    (2) 我們放到Linux下的1個(gè)文件夾,然后解壓: 

      #tar zxvf zookeeper⑶.4.6.tar.gz

  (3)然后在對(duì)應(yīng)的zookeeper⑶.4.6/conf 下有1個(gè)文件zoo_sample.cfg的這個(gè)文件里面配置了監(jiān)聽(tīng)客戶端連接的端口等1些信息,Zookeeper 在啟動(dòng)時(shí)會(huì)找zoo.cfg這個(gè)文件作為默許配置文件,所以我們復(fù)制1個(gè)名稱為zoo.cfg的文件,如圖所示:

     

 

   我們查看1下這個(gè)文件的里面的1些配置信息,如圖所示:

    

  獲得【下載地址】   最主流的Java后臺(tái) SSM 框架 springmvc spring mybatis 項(xiàng)目源碼

說(shuō)明:

 clientPort:監(jiān)聽(tīng)客戶端連接的端口。

 tickTime:基本事件單元,以毫秒為單位。它用來(lái)控制心跳和超時(shí),默許情況下最小的會(huì)話超時(shí)時(shí)間為兩倍的 tickTime。

 我們可以對(duì)配置文件的端口等或進(jìn)行高級(jí)配置和集群配置例如:maxClientCnxns:限制連接到 ZooKeeper 的客戶真?zhèn)€數(shù)量等

 (4)啟動(dòng)Zookeeper 的服務(wù),如圖所示:

    

 到這邊Zookeeper的安裝和配置完成

  第2步:配置dubbo-admin的管理頁(yè)面,方便我們管理頁(yè)面

    (1)下載dubbo-admin⑵.4.1.war包,在Linux的tomcat部署,先把dubbo-admin⑵.4.1放在tomcat的webapps/ROOT下,然落后行解壓:

        #jar -xvf dubbo-admin⑵.4.1.war

    (2)然后到webapps/ROOT/WEB-INF下,有1個(gè)dubbo.properties文件,里面指向Zookeeper ,使用的是Zookeeper 的注冊(cè)中心,如圖所示:

        

   (3)然后啟動(dòng)tomcat服務(wù),用戶名和密碼:root,并訪問(wèn)服務(wù),顯示登陸頁(yè)面,說(shuō)明dubbo-admin部署成功,如圖所示:

      

  第3步:SpringMVC與Dubbo的整合,這邊使用的Maven的管理項(xiàng)目

    第1:我們先開(kāi)發(fā)服務(wù)注冊(cè)的,就是提供服務(wù),項(xiàng)目結(jié)構(gòu)如圖所示:

         

    (1)test-maven-api項(xiàng)目加入了1個(gè)服務(wù)接口,代碼以下:

  1. public interface TestRegistryService {  
  2.    public String hello(String name);  
  3. }  

  (2)test-maven-console在pom.xml加入Dubbo和Zookeeper的jar包、援用test-maven-api的jar包,代碼以下:

  1.    <dependency>  
  2.     <groupId>cn.test</groupId>  
  3.     <artifactId>test-maven-api</artifactId>  
  4.     <version>0.0.1-SNAPSHOT</version>  
  5. </dependency>  
  6.   
  7.    <dependency>  
  8.          <groupId>com.alibaba</groupId>  
  9.          <artifactId>dubbo</artifactId>  
  10.          <version>2.5.3</version>  
  11.      </dependency>  
  12.        
  13.       <dependency>  
  14.          <groupId>org.apache.zookeeper</groupId>  
  15. <artifactId>zookeeper</artifactId>  
  16. <version>3.4.6</version>  
  17.      </dependency>  
  18.   
  19.    <dependency>  
  20.      <groupId>com.github.sgroschupf</groupId>  
  21. <artifactId>zkclient</artifactId>  
  22. <version>0.1</version>  
  23.    </dependency>  

(3)test-maven-console實(shí)現(xiàn)具體的服務(wù),代碼以下:

  1.  @Service("testRegistryService")  
  2. ublic class TestRegistryServiceImpl implements TestRegistryService {  
  3. public String hello(String name) {    
  4.     return "hello"+name;  
  5. }  


(4)我們服務(wù)和實(shí)現(xiàn)好了,這時(shí)候要暴露服務(wù),代碼以下:
  

  1. <?xml version="1.0" encoding="UTF⑻"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  4.     xmlns:jee="http://www.springframework.org/schema/jee"  
  5.     xmlns:tx="http://www.springframework.org/schema/tx"  
  6.     <span style="color:#cc0000;">xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"</span>  
  7.     xmlns:context="http://www.springframework.org/schema/context"  
  8.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans⑶.1.xsd  
  9.     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx⑶.1.xsd  
  10.     http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee⑶.1.xsd  
  11.     <span style="color:#990000;">http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd</span>  
  12.     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context⑶.1.xsd"  
  13.     default-lazy-init="false" >  
  14.    <!-- 提供方利用名稱信息,這個(gè)相當(dāng)于起1個(gè)名字,我們dubbo管理頁(yè)面比較清晰是哪一個(gè)利用暴露出來(lái)的 -->  
  15.    <dubbo:application name="dubbo_provider"></dubbo:application>  
  16.    <!-- 使用zookeeper注冊(cè)中心暴露服務(wù)地址 -->    
  17.    <dubbo:registry address="zookeeper://127.0.0.1:2181" check="false" subscribe="false" register=""></dubbo:registry>  
  18.   <!-- 要暴露的服務(wù)接口 -->    
  19.   <dubbo:service interface="cn.test.dubbo.registry.service.TestRegistryService" ref="testRegistryService" />        
  20. </beans>  

 

說(shuō)明:

   dubbo:registry 標(biāo)簽1些屬性的說(shuō)明:

      1)register是不是向此注冊(cè)中心注冊(cè)服務(wù),如果設(shè)為false,將只定閱,不注冊(cè)。

      2)check注冊(cè)中心不存在時(shí),是不是報(bào)錯(cuò)。

      3)subscribe是不是向此注冊(cè)中心定閱服務(wù),如果設(shè)為false,將只注冊(cè),不定閱。

      4)timeout注冊(cè)中心要求超時(shí)時(shí)間(毫秒)。

      5)address可以Zookeeper集群配置,地址可以多個(gè)以逗號(hào)隔開(kāi)等。

  dubbo:service標(biāo)簽的1些屬性說(shuō)明:

     1)interface服務(wù)接口的路徑

     2)ref援用對(duì)應(yīng)的實(shí)現(xiàn)類的Bean的ID

     3)registry向指定注冊(cè)中心注冊(cè),在多個(gè)注冊(cè)中心時(shí)使用,值為<dubbo:registry>的id屬性,多個(gè)注冊(cè)中心ID用逗號(hào)分隔,如果不想將該服務(wù)注冊(cè)到任何registry,可將值設(shè)為N/A

     4)register 默許true ,該協(xié)議的服務(wù)是不是注冊(cè)到注冊(cè)中心。

 

  (5)啟動(dòng)項(xiàng)目,然后我們?cè)贒ubbo管理頁(yè)面上顯示,已暴露的服務(wù),但顯示還沒(méi)有消費(fèi)者,由于我們還沒(méi)實(shí)現(xiàn)消費(fèi)者服務(wù),如圖所示:

  

   第2:我們?cè)陂_(kāi)發(fā)服務(wù)消費(fèi)者,就是調(diào)用服務(wù),我們?cè)谛陆?個(gè)新的消費(fèi)者項(xiàng)目結(jié)構(gòu)如圖所示:

       

   (1)test-maven-server-console的pom.xml引入Dubbo和Zookeeper的jar包、test-maven-api的jar包,由于引入test-maven-api的jar包,我們?cè)陧?xiàng)目中調(diào)用像在本地調(diào)用1樣。代碼以下:

      

  1.    <dependency>  
  2.     <groupId>cn.test</groupId>  
  3.     <artifactId>test-maven-api</artifactId>  
  4.     <version>0.0.1-SNAPSHOT</version>  
  5. </dependency>  
  6.   
  7.    <dependency>  
  8.          <groupId>com.alibaba</groupId>  
  9.          <artifactId>dubbo</artifactId>  
  10.          <version>2.5.3</version>  
  11.      </dependency>  
  12.        
  13.       <dependency>  
  14.          <groupId>org.apache.zookeeper</groupId>  
  15. <artifactId>zookeeper</artifactId>  
  16. <version>3.4.6</version>  
  17.      </dependency>  
  18.   
  19.    <dependency>  
  20.      <groupId>com.github.sgroschupf</groupId>  
  21. <artifactId>zkclient</artifactId>  
  22. <version>0.1</version>  
  23.    </dependency>  

  (2)test-maven-server-console項(xiàng)目的具體實(shí)現(xiàn),代碼以下:

     

  1. @Controller  
  2. public class IndexController {  
  3.       
  4.     @Autowired  
  5.     private TestRegistryService testRegistryService;  
  6.       
  7.     @RequestMapping("/hello")  
  8.      生活不易,碼農(nóng)辛苦
    如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
    程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 色av吧 | 麻豆视频一区 | 91在线亚洲 | 国产精品日韩欧美 | 日本a v在线播放 | 一区二区三区在线免费视频 | 久久五月天婷婷 | 日韩欧美在线观看视频 | 久久久国产一区 | 欧美日本成人 | 欧美精品系列 | 簧片av | 欧美日韩电影在线观看 | a√毛片| 国产精品91视频 | 黄网站入口 | 欧美精品在线一区二区三区 | 毛片网页 | 精品欧美一区二区三区精品久久 | 成人在线国产视频 | 国产高清视频在线 | 成年人视频免费在线观看 | 综合网视频 | 久久99国产精一区二区三区 | 一级毛片免费 | 色姑娘色综合 | 操出白浆视频 | 午夜美女福利 | 欧美午夜一区二区 | 久久逼逼 | 国产99久久久国产精品成人免费 | 国产精品国产三级国产 | 亚洲 自拍 另类 欧美 丝袜 | av中文字幕第一页 | 日韩免费在线播放 | 国产日韩欧美在线观看 | 日韩免费在线视频 | 日韩欧美精品在线 | 精品福利一区二区三区 | 黄色一级毛片 | 欧美日本成人 |