Dubbo入门Demo
这里主要采用Dubbo与Zookeeper、SpringBoot框架整合。
步骤:
1. 安装Zookeeper
2. 创建Maven项目,服务提供者和服务消费者,并与ZK、Dubbo整合
3. 部署Dubbo-admin、Dubbo-Monitor实现管理和监控
Zookeeper是一个分布式的服务框架,是树型的目录服务的数据存储,能做到集群管理数据,这里能很好的作为Dubbo服务的注册中心。
Dubbo能与Zookeeper做到集群部署,当提供者出现断电等异常停机时,Zookeeper注册中心能自动删除提供者信息,当提供者重启时,能自动恢复注册数据,以及订阅请求。
具体安装方法,请参考博文:
http://www.baidu.com
安装完成后,并启动Zookeeper。
项目模块:
dubbo-consumer:服务消费者,对外提供服务,内部调用服务提供者
dubbo-provider:服务提供者,对服务消费者提供服务
首先在pom.xml文件中添加dubbo依赖配置:
在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();
}
}
首先在pom.xml文件中添加dubbo依赖配置:
在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;
}
}
分别启动服务提供者跟服务消费者项目
通过浏览器访问:http://localhost:8082/consumer/user
dubbo-admin是dubbo的管理平台,通过dubbo-admin可以实时查看服务提供者和服务消费者,也可以进行管理。
地址: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\target目录下,得到dubbo-admin-2.0.0.war
配置Zookeeper连接地址:
修改war读取配置文件的路径:
第一个路径是读取war包里面的dubbo.properties配置文件
第二个路径是读取war包外面的配置文件
保留第一个。
将dubbo-admin-2.0.0.war放入tomcat的webapps目录下,并启动tomcat。
在浏览器的访问地址:http://localhost:8080/dubbo-admin-2.0.0/
默认登录帐号密码:root/root
dubbo监控平台,主要负责统计服务调用次数及时间
地址: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\target目录下,得到dubbo-monitor-simple-2.0.0-assembly.tar.gz
解压dubbo-monitor-simple-2.0.0-assembly.tar.gz
找到monitor Jar包,以压缩文件的方式打开
\dubbo-monitor-simple-2.0.0-assembly\dubbo-monitor-simple-2.0.0\lib\dubbo-monitor-simple-2.0.0.jar
修改读取dubbo.properties文件路径:
第一个路径是读取程序外面的配置文件
第二个路径是读取程序里面的dubbo.properties配置文件
保留第二个。
配置Zookeeper连接地址:
\dubbo-monitor-simple-2.0.0\assembly.bin\
启动:
./start.sh
停止:
./stop.sh
重启:
./restart.sh
调试:
./start.sh debug
系统状态:
./dump.sh
访问地址:http://localhost:8080/index.html