国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

dubbo+zookeeper 分布式項目搭建

2019-11-08 19:32:08
字體:
來源:轉載
供稿:網友

  dubbo簡介:

           系統間服務調用方式有三種,瀏覽器直接訪問,通過Ajax或者jsonp方式請求。第二種,httpclient方式發起http協議的請求,是后臺調用。第三種基于RPC方式的遠程過程調用協議的請求。DUBBO是一個分布式服務框架,致力于提供高性能和透明化的RPC遠程服務調用方案,是阿里巴巴SOA服務化治理方案的核心框架,每天為2,000+個服務提供3,000,000,000+次訪問量支持,并被廣泛應用于阿里巴巴集團的各成員站點。

了解dubbo工作原理,下面的依賴關系圖是重點內容:

    圖中小方塊PRotocol, Cluster, Proxy, Service, Container, Registry, Monitor代表層或模塊,藍色的表示與業務有交互,綠色的表示只對Dubbo內部交互。    圖中背景方塊Consumer, Provider, Registry, Monitor代表部署邏輯拓普節點。    圖中藍色虛線為初始化時調用,紅色虛線為運行時異步調用,紅色實線為運行時同步調用。    圖中只包含RPC的層,不包含Remoting的層,Remoting整體都隱含在Protocol中。

      ZooKeeper是一個分布式的,開放源碼的分布式應用程序協調服務。它主要是用來解決分布式應用中經常遇到的一些數據管理問題,如:統一命名服務、狀態同步服務、集群管理、分布式應用配置項的管理等。它的作用相當于對集群的管理,消費者和生產者都要到zookeeper進行服務的發布和注冊。

下面我們親手搭建一個分布式的服務:

1.將dubbo包安裝到本地maven

2.安裝zookeeper

3.寫服務提供方代碼(API項目,服務實現層項目)

4.寫服務調用方代碼

第一步,略

第二步,略

遇到三個問題:

    1.在dubbo包install的時候發生一個問題:Maven : error in opening zip file when running maven。

      解決:我們要做的就是刪除repository目錄下提示“error in opening zip file",然后從新編譯就OK了,如果遇到多個這樣的錯誤只需要把出現這種錯誤的目錄刪除,從新編譯就行了。

    2. Dubbo admin在JDK1.8環境運行報Invalid property 'URIType' of bean class

      原因:URIType 的get和set方法寫得不規范。      解決方法:降級jdk到1.7。

      3.問題:dubbo部署到tomcat,一直執行到 INFO zkclient.ZkEventThread - Starting ZkClient 就不會再繼續往下執行了

 

      解決:這個簡單,是因為zookeeper服務沒有啟動。

3.寫服務提供方代碼(API項目,服務實現層項目)

三個maven項目,dubbo-a、dubbo-b、dubbo-b-api。其中A是服務調用方,B是服務提供方,API項目中放著B暴露的接口,和POJO。A和B項目都依賴dubbo-b-api。dubbo是采用spring配置的,所以需要導入spring容器。

dubbo-b:

dubbo-b-api:

dubbo-a:

實現類修不展示了,隨便寫點業務邏輯做測試就行,主要是配置文件的配置。

dubbo-a/dubbo-comsummer.xml

<beans xmlns="http://www.springframework.org/schema/beans"	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">	<!-- 提供方應用信息,用于計算依賴關系 -->	<dubbo:application name="dubbo-a-consumer"/>		<!-- 這里使用的注冊中心是zookeeper -->	<dubbo:registry address="zookeeper://127.0.0.1:2181"		client="zkclient"/>			<!-- 從注冊中心中查找服務 -->    <dubbo:reference id="userService" interface="cn.itcast.dubbo.service.UserService"/>	</beans>dubbo-b/dubbo-server.xml:

<beans xmlns="http://www.springframework.org/schema/beans"	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">	<!-- 提供方應用信息,用于計算依賴關系 -->	<dubbo:application name="dubbo-b-server"/>		<!-- 這里使用的注冊中心是zookeeper -->	<dubbo:registry address="zookeeper://127.0.0.1:2181"		client="zkclient"/>			<!-- 用dubbo協議在20880端口暴露服務 -->	<dubbo:protocol name="dubbo" port="20880"/>		<!-- 將該接口暴露到dubbo中 -->	<dubbo:service interface="cn.itcast.dubbo.service.UserService"	    ref="userServiceImpl"/>	    	    	<!-- 將具體的實現類加入到Spring容器中 -->	<bean id="userServiceImpl" class="cn.itcast.dubbo.service.impl.UserServiceImpl"/>		<dubbo:monitor protocol="registry"/></beans>為什么會有api項目,把公共的內容抽取出來,如接口,pojo,解決了代碼重復的問題,同時可以統一管理。

dubbo監控工具:dubbo-monitor-simple 

服務運行之后,可以通過:dubbo-monitor-simple 監控dubbo服務。查看服務調用次數,等等。這里最大并發數是累加的。

dubbo管理工具:dubbo-admin-2.5.3.war

1.解壓到tomcat的root下面,替換了2.配置D:/dubbo-tomcat7.0/webapps/ROOT/WEB-INF/dubbo.properties3.啟動tomcat,一定要先啟動zkServer.cmd

最后訪問8080端口,就可以看到dubbo的管理界面了

總結:

     多學習,多思考。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长寿区| 察哈| 调兵山市| 甘德县| 石渠县| 昌邑市| 库伦旗| 新郑市| 土默特左旗| 阿城市| 湘阴县| 湖南省| 龙胜| 汉源县| 南丰县| 炎陵县| 芮城县| 信阳市| 白城市| 凤翔县| 买车| 丰都县| 永和县| 大足县| 临潭县| 阿拉善右旗| 秦皇岛市| 独山县| 延川县| 久治县| 西安市| 乡城县| 金坛市| 辽宁省| 南木林县| 湖北省| 雅江县| 蒲城县| 宜君县| 富川| 长顺县|