Dubbo框架圖
由上圖可見,Dubbo框架分類提供者(Provider)、消費者(Consumer)、註冊中心(Registry)、監視器(Monitor可以不要)組成;
搭建步驟可以分爲四步:
- 使用zookeeper創建註冊中心;
- 創建提供者服務;
- 創建消費者服務;
- 創建監視器;
第一步:安裝zookeeper
- 下載zookeeper
下載地址:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/
- 上傳到服務器安裝
- 服務器上創建一個固定目錄 mkdir zookeeper創建;
- 使用rz命令將安裝包上傳到該目錄;
- 解壓 tar zxvf zookeeper-3.4.14.tar.gz;
- 進入解壓目錄的conf目錄;mv zoo_sample.cfg zoo.cfg
- 在解壓目錄下創建 data目錄;mkdir data;
- 修改zoo.cfg配置文件
注意幾個重要位置:
dataDir=./ 臨時數據存儲的目錄(可寫相對路徑)改成我們剛建立的data路徑
clientPort=2181 zookeeper的默認端口號
bin目錄啓zookeeper服務
- 1. 啓動ZK服務: bin/zkServer.sh start
- 2. 查看ZK服務狀態: bin/zkServer.sh status
- 3. 停止ZK服務: bin/zkServer.sh stop
- 4. 重啓ZK服務: bin/zkServer.sh restart
- 5. 連接服務器: zkCli.sh -server 127.0.0.1:2181
第二步:創建提供者服務端
項目結構:
項目內容直接下載,不再展示
ApplicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo = "http://code.alibabatech.com/schema/dubbo" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!-- bean definitions go here--> <!-- 配置dubbo的應用名稱 --> <dubbo:application name="student_service"></dubbo:application> <!-- 配置dubbo的配置中心 192.168.234.118--> <!-- dubbo:registry address="zookeeper://122.51.144.197:2181" ></dubbo:registry>--> <dubbo:registry protocol="zookeeper" address="zookeeper://122.51.144.197:2181" ></dubbo:registry> <!-- 配置dubbo的掃描包 將@service註解的類放入dubbo掃描包,供dubbo遠程調用(RPC)時使用--> <dubbo:annotation package="com.test.impl"></dubbo:annotation> <!-- 注入到spring的 ioc容器中 --> <context:component-scan base-package="com.test.impl"></context:component-scan> </beans>
啓動服務端
eclipse 創建maven命令:右鍵項目 -》run as -》創建maven build-》Goals ->tomcat7:run
啓動服務:
第三步 :創建消費者
項目目錄架構:
代碼直接下載:
控制層代碼如下:
package org.controller; //import org.server.StudentServer; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.alibaba.dubbo.config.annotation.Reference; import com.test.api.StudentServer; @Controller @ResponseBody @RequestMapping("StudentController") public class StudentController { @Reference StudentServer studentServer; @RequestMapping("rpcServer") public String rpcServer() { String respmsg=studentServer.server("你好"); System.out.println("respmsg:"+respmsg); return respmsg; } }
spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo = "http://code.alibabatech.com/schema/dubbo" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <dubbo:annotation package="org.controller"></dubbo:annotation> <!-- <context:annotation-config/>--> <!-- bean definitions go here--> <!-- 配置dubbo的應用名稱 --> <dubbo:application name="student_consumer"></dubbo:application> <!-- 配置dubbo的配置中心 --> <dubbo:registry protocol="zookeeper" address="zookeeper://122.51.144.197:2181" ></dubbo:registry> <!-- <dubbo:registry protocol="zookeeper" address="zookeeper://192.168.234.118:2181" ></dubbo:registry>--> <!-- 配置dubbo的掃描包 將@service註解的類放入dubbo掃描包,供dubbo遠程調用(RPC)時使用--> <!-- 要引用的服務,生成遠程服務代理,可以像使用本地bean一樣使用 --> <dubbo:reference id="StudentServer" interface="com.test.api.StudentServer" /> <!-- 注入到spring的 ioc容器中 --> <context:component-scan base-package="org.controller"></context:component-scan> </beans>
eclipse 創建maven命令:右鍵項目 -》run as -》創建maven build-》Goals ->tomcat7:run
此時項目已經可以運行了,爲了可視化管理服務,我們創建監管者,監管服務情況
第四步:安裝dubbo-admin
github下載dubbo-admin,打成war包,放在tomcat容器中webapp目錄中,重啓tomcat服務;
下載地址:https://github.com/apache/dubbo-admin
- 進入目錄,修改dubbo-admin配置
修改 src\main\resources\application.properties 指定zookeeper地址
我打好的war包:
bin目錄重新啓動tomcat startup.sh
默認登錄用戶 admin 密碼guest
登錄dubbo-admin可以查看服務情況如下
訪問消費方服務地址:
http://localhost:8882/StudentController/rpcServer.action
效果如下: