Dubbo入门Demo
这里主要采用Dubbo与Zookeeper、SpringBoot框架整合。
步骤:
1. 安装Zookeeper
2. 创建Maven项目,服务提供者和服务消费者,并与ZK、Dubbo整合
3. 部署Dubbo-admin、Dubbo-Monitor实现管理和监控
一、 Zookeeper安装
Zookeeper是一个分布式的服务框架,是树型的目录服务的数据存储,能做到集群管理数据,这里能很好的作为Dubbo服务的注册中心。
Dubbo能与Zookeeper做到集群部署,当提供者出现断电等异常停机时,Zookeeper注册中心能自动删除提供者信息,当提供者重启时,能自动恢复注册数据,以及订阅请求。
具体安装方法,请参考博文:
http://www.baidu.com
安装完成后,并启动Zookeeper。
二、 创建Maven项目
项目模块:
dubbo-consumer:服务消费者,对外提供服务,内部调用服务提供者
dubbo-provider:服务提供者,对服务消费者提供服务
1.创建dubbo-consumer(服务消费者)项目
首先在pom.xml文件中添加dubbo依赖配置:
io.dubbo.springboot
spring-boot-starter-dubbo
${dubbo-spring-boot}
在application.properties配置dubbo相关配置
## tomcat端口号配置
server.port=8082
## 项目访问路径配置
server.context-path=/consumer
## Dubbo 应用名称
spring.dubbo.application.name=consumer
##Dubbo 注册中心地址
spring.dubbo.registry.address=zookeeper://127.0.0.1:2182
## Dubbo 服务类包目录(service所在包的地址,这个千万不要配置错误)
spring.dubbo.scan=com.springboot.service
接口实现类:
@Component
public class UserServiceImpl implements UserService {
@Reference(version= “1.0.0”)
UserServiceuserService;// 调用远程接口的实现类
/**
* 通过Dubbo实现远程RPC调用接口信息
*/
@Override
public UserInfoqueryUserName() {
UserInfouserInfo=userService.queryUserName();
returnuserInfo;
}
}
控制类:
@RestController
public class UserContorller {
@Autowired
privateUserService userSerice;
@RequestMapping("/user")
public Stringtest(){
UserInfouserInfo=userSerice.queryUserName();
return “返回的结果1=”+userInfo.getUserName();
}
}
2.创建dubbo-provider(服务提供者)项目
首先在pom.xml文件中添加dubbo依赖配置:
io.dubbo.springboot
spring-boot-starter-dubbo
${dubbo-spring-boot}
在application.properties配置dubbo相关配置
## tomcat端口号配置
server.port=8081
## 项目访问路径配置
server.context-path=/provider
## Dubbo 应用名称
spring.dubbo.application.name=provider
##Dubbo 注册中心地址
spring.dubbo.registry.address=zookeeper://127.0.0.1:2182
##Dubbo 协议名称
spring.dubbo.protocol.name=dubbo
##Dubbo 协议端口
#spring.dubbo.protocol.port=20880
spring.dubbo.protocol.port=2888
## Dubbo 服务类包目录(service所在包的地址,这个千万不要配置错误)
spring.dubbo.scan=com.springboot.service
接口实现类:
/**
* RPC接口的实现类
* @authorlinzhiqiang
*/
//注册为 Dubbo 服务
@Service(version =“1.0.0”)
public class UserServiceImpl implements UserService {
@Override
public UserInfoqueryUserName() {
UserInfouserInfo=new UserInfo();
userInfo.setUserName(“张三”);
returnuserInfo;
}
}
3.启动项目
分别启动服务提供者跟服务消费者项目
4.访问项目
通过浏览器访问:http://localhost:8082/consumer/user
三、 Dubbo-admin部署
dubbo-admin是dubbo的管理平台,通过dubbo-admin可以实时查看服务提供者和服务消费者,也可以进行管理。
1.github下载源代码并打包
地址:https://github.com/apache/incubator-dubbo-ops
解压:incubator-dubbo-ops-master.zip
在incubator-dubbo-ops-master目录下,执行maven命令进行打包:
mvn clean package-Dmaven.test.skip=true
在dubbo-admin arget目录下,得到dubbo-admin-2.0.0.war
2.修改配置文件
配置Zookeeper连接地址:
修改war读取配置文件的路径:
第一个路径是读取war包里面的dubbo.properties配置文件
第二个路径是读取war包外面的配置文件
保留第一个。
3.启动管理平台
将dubbo-admin-2.0.0.war放入tomcat的webapps目录下,并启动tomcat。
在浏览器的访问地址:http://localhost:8080/dubbo-admin-2.0.0/
默认登录帐号密码:root/root
四、 Dubbo-monitor部署
dubbo监控平台,主要负责统计服务调用次数及时间
1.github下载源代码并打包
地址:https://github.com/apache/incubator-dubbo-ops
解压:incubator-dubbo-ops-master.zip
在incubator-dubbo-ops-master目录下,执行maven命令进行打包:
mvn clean package-Dmaven.test.skip=true
在dubbo-monitor-simple arget目录下,得到dubbo-monitor-simple-2.0.0-assembly.tar.gz
解压dubbo-monitor-simple-2.0.0-assembly.tar.gz
2.修改配置文件
找到monitor Jar包,以压缩文件的方式打开
dubbo-monitor-simple-2.0.0-assemblydubbo-monitor-simple-2.0.0libdubbo-monitor-simple-2.0.0.jar
修改读取dubbo.properties文件路径:
第一个路径是读取程序外面的配置文件
第二个路径是读取程序里面的dubbo.properties配置文件
保留第二个。
配置Zookeeper连接地址:
3.启动管理平台
dubbo-monitor-simple-2.0.0assembly.bin
启动:
./start.sh
停止:
./stop.sh
重启:
./restart.sh
调试:
./start.sh debug
系统状态:
./dump.sh
访问地址:http://localhost:8080/index.html