Zookeeper環境搭建(Windows)
Demo源碼【dubbo-provider/dubbo-consumer】地址:
????https://github.com/duanjunhua/spring-boot
Zookeeper插件地址:
????http://www.massedynamic.org/eclipse/updates/
搭建zookeeper環境:
在Apache(https://zookeeper.apache.org/)網站下載Zookeeper包,此處使用的是zookeeper-3.4.12.tar.gz版本
-
復制一份zoo_sample.cfg并重命名為zoo.cfg,并修改以下內容:
Zookeeper配置 -
配置zookeeper啟動環境:
1. 新建環境變量:ZOO_HOME=F:\MichaelDuan\zookeeper\zookeeper //zookeeper解壓(安裝)的目錄 2. 在Path中添加:%ZOO_HOME%\bin;
-
可以啟動zookeeper以及查看啟動狀態:
-
zkZerver.cmd啟動: Zookeeper啟動
-
進入客戶端查看注冊中心信息:
客戶端查看注冊中心服務
-
zkZerver.cmd啟動:
配置Dubbo服務端
-
項目依賴
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.dubbo.demo</groupId> <artifactId>dubbo-provider</artifactId> <version>0.0.1-SNAPSHOT</version> <!-- Spring Boot 啟動父依賴 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.1.RELEASE</version> </parent> <properties> <dubbo-spring-boot>1.0.0</dubbo-spring-boot> </properties> <dependencies> <!-- Spring Boot Dubbo 依賴 --> <dependency> <groupId>io.dubbo.springboot</groupId> <artifactId>spring-boot-starter-dubbo</artifactId> <version>${dubbo-spring-boot}</version> </dependency> <!-- Spring Boot Web 依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Spring Boot Test 依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- Junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies> </project>
-
項目結構:
項目結構 -
配置文件:
Dubbo服務端配置 -
服務端的Service實現類必須導入的為Dubbo的Service
package com.dubbo.demo.service.impl; import com.alibaba.dubbo.config.annotation.Service; import com.dubbo.demo.service.HelloWorldService; /** * 注冊為Dubbo服務,導入的為Dubbo Service注解 */ @Service(version="1.0") public class HelloWorldServiceImpl implements HelloWorldService { public String hello(String name) { return "Hello World! " + name; } }
Dubbo客戶端
-
依賴
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.dubbo.demo</groupId> <artifactId>dubbo-consumer</artifactId> <version>0.0.1-SNAPSHOT</version> <!-- Spring Boot 啟動父依賴 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.1.RELEASE</version> </parent> <properties> <dubbo-spring-boot>1.0.0</dubbo-spring-boot> </properties> <dependencies> <!-- Spring Boot Dubbo 依賴 --> <dependency> <groupId>io.dubbo.springboot</groupId> <artifactId>spring-boot-starter-dubbo</artifactId> <version>${dubbo-spring-boot}</version> </dependency> <!-- Spring Boot Web 依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Spring Boot Test 依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- Swagger UI dependency --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version> </dependency> <!-- Junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies> </project>
-
項目結構:
客戶端項目結構 -
Reference服務:
package com.dubbo.demo.service; import org.springframework.stereotype.Component; import com.alibaba.dubbo.config.annotation.Reference; @Component public class HelloConsumerService { @Reference(version="1.0") HelloWorldService helloWorldService; //不能在Controller中直接Reference,需要使用Component優先加載Bean,否則會報空指針問題 public String rest(String name) { return helloWorldService.hello(name); } }
Dubbo控制臺
-
下載Dubbo war包 [dubbo-admin-2.5.4.war],并將war包解壓到tomcat webapps路徑下并修改dubbo-admin/WEB-INF/dubbo.properties如下配置:
dubbo.registry.address=zookeeper://127.0.0.1:2181 //配置Zookeeper中心地址,集群時填寫集群地址 dubbo.admin.root.password=root //客戶端默認用戶名為root dubbo.admin.guest.password=root //客戶端密碼
-
啟動tomcat,并打開控制臺,如下:
控制臺界面 -
啟動Dubbo服務端并查看:
-
Zookeeper注冊中心服務:
Eclipse注冊服務結果 -
控制臺顯示: 服務應用界面
服務詳細圖
-
-
啟動客戶端,并查看結果:
-
Swagger 界面:
Swagger UI
-
-
Dubbo控制臺:
控制臺客戶端 -
測試結果:
測試結果