注:百度找了一点资料,然后融合整理后记录如下的步骤,仅用于笔记。
demo项目的结构:
Dubbo-demo 为根目录
Dubbo-api -- 存放统一接口(提供统一的接口)
Dubbo-provider -- 服务提供者(为接口提供服务实现)
Dubbo-cunsumer -- 服务使用者(调用统一的接口)
*************************************************************************************************
根目录中 pom.xml 的引用部分
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<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.9</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.3</version>
</dependency>
</dependencies>
<build>
<finalName>dubbo-demo</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork> <!-- 自动重启 -->
</configuration>
</plugin>
<!--指定使用maven打包-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests> <!--默认关掉单元测试 -->
</configuration>
</plugin>
</plugins>
</build>
****************************************************************************************************
Dubbo-api 子模块的内容部分:
1、pom.xml文件
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2、接口文件
****************************************************************************************************
Dubbo-provider 子模块目录
1、pom.xml文件引入部分
<dependencies>
<dependency>
<groupId>cn.com.lsjz</groupId>
<artifactId>dubbo-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
2、application.properties文件
# Spring boot application
spring.application.name = dubbo-provider
server.port = 9090
management.port = 9091
#dubbo提供者的别名,只是个标识
spring.dubbo.application.name=dubbo-provider
#zk地址
spring.dubbo.registry.address=zookeeper://localhost:2181
#dubbo协议
spring.dubbo.protocol.name=dubbo
#duboo端口号
spring.dubbo.protocol.port=20880
#这是你要发布到dubbo的接口所在包位置
spring.dubbo.scan=cn.com.lsjz.dubbo.provider
3、服务提供者实现方法
****************************************************************************************************
Dubbo-consumer 子模块目录
1、pom.xml文件引入部分
<dependencies>
<dependency>
<groupId>cn.com.lsjz</groupId>
<artifactId>dubbo-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
2、application.properties文件
spring.application.name = dubbo-consumer
server.port = 8085
management.port = 8081
spring.dubbo.application.name=dubbo-consumer
#zk地址
spring.dubbo.registry.address=zookeeper://localhost:2181
#dubbo协议
spring.dubbo.protocol.name=dubbo
#duboo端口号
spring.dubbo.protocol.port=20880
#这是要扫描使用的dubbo接口所在包位置
spring.dubbo.scan=cn.com.lsjz.dubbo.consumer
3、服务使用者调用接口
****************************************************************************************************
以上全部配置完毕。
启动步骤:
1、启动zookeeper
a. 下载zookeeper放在本地并解压:
b. 新建数据及日志目录
c. 配置zoo.cfg
#这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳tickTime=2000
initLimit=10
syncLimit=5
#顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里
dataDir=D:\zookeeper-3.5.3-beta\data
#顾名思义就是 Zookeeper 保存日志文件的目录
dataLogDir=D:\zookeeper-3.5.3-beta\log
#这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求
clientPort=2181
#maxClientCnxns=60
#autopurge.snapRetainCount=3
#autopurge.purgeInterval=1
d. 启动zookeeper
2、运行服务提供者(dubbo-provider子模块中的DubboProviderStart类的main方法)
3、运行服务使用者(dubbo-consumer子模块中的DubboConsumerStart类的main方法)
4、访问地址:http://localhost:8085/sayHello?name=123