maven管理。用MyEclipse 2017
項目地址:https://github.com/hannibal2017/p2p/tree/simpleDemo
項目結構如下圖:
步驟如下:
1,new - maven project ,新建p2p-dubbo,package選pom
2,在項目p2p-dubbo建立子項目,右鍵-maven-new maven module
分別創建子項目:p2p-dubbo-api,p2p-dubbo-provider,p2p-dubbo-consumer
3,父項目Pom.xml,導入文件
<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.luo</groupId>
<artifactId>p2p-dubbo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<build />
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<dubbo.version>2.6.1</dubbo.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- dubbo框架 -->
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<modules>
<module>p2p-dubbo-api</module>
<module>p2p-dubbo-provider</module>
<module>p2p-dubbo-consumer</module>
</modules>
</project>
4,p2p-dubbo-api新建立一個接口DemoService
package com.luo.test; public interface DemoService { String test(); }
5,提供者:p2p-dubbo-provider。
pom.xml引入子項目:
<dependencies> <dependency> <groupId>com.luo</groupId> <artifactId>p2p-dubbo-api</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies>
實現接口:
package com.luo.provider.service.impl; import com.alibaba.dubbo.config.annotation.Service; import com.luo.test.DemoService; @Service(version = "1.0.0", interfaceName = "com.luo.test.DemoService") public class DemoServiceImpl implements DemoService { @Override public String test() { return "恭喜連接成功"; } }
引入資源配置文件,有三個,這里選主要的
server.port=8081 # dubbo spring.dubbo.application.name=p2p-provider spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 spring.dubbo.protocol.name=dubbo spring.dubbo.protocol.port=20880 spring.dubbo.scan=com.luo.provider.service.impl spring.dubbo.provider.filter=-exception
建立啟動類ProviderApplication:
package com.luo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication.class, args); } }
結構圖如下:
5,消費者:p2p-dubbo-consumer。
pom.xml導入子項目
<dependencies> <dependency> <groupId>com.luo</groupId> <artifactId>p2p-dubbo-api</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies>
引入資源配置文件,有三個,這里選主要的
server.port=8082 # dubbo spring.dubbo.application.name=p2p-consumer spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 spring.dubbo.protocol.name=dubbo spring.dubbo.protocol.port=20880 spring.dubbo.scan=com.luo.control spring.dubbo.provider.filter=-exception
新建一個類
package com.luo.control; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.alibaba.dubbo.config.annotation.Reference; import com.luo.test.DemoService; @RequestMapping("test") @RestController public class TestControl { @Reference(version = "1.0.0", check = false) private DemoService demoService; @RequestMapping("getMessage") public String test() { System.out.println("getMessage:" + demoService.test()); return "OK:返回信息=" + demoService.test(); } @RequestMapping("index") public String index() { return "你好啊"; } }
新建啟動類ConsumerApplication
package com.luo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ConsumerApplication { public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); } }
6,運行,測試:
下載zookeeper,並啟動。啟動項目provider,consumer。然后在瀏覽器輸入:http://localhost:8082/test/getMessage
這是基礎的例子,后面加上其他功能。
7 dubbo管理控制dubbo-admin
7.1 去 https://github.com/apache/incubator-dubbo/tree/dubbo-2.6.0下載項目
下載后進入文件夾dubbo-admin,執行:
mvn package -Dmaven.skip.test=true
執行完后,如圖
把這個war包放到Tomcat的webapp下面,並改名為ROOT,(apache-tomcat-8.5.38)
啟動后,瀏覽器輸入:http://localhost:8080/。再輸入用戶名和密碼,root和root。如圖