Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可经过高性能的RPC实现服务的输出和输入功能,能够和Spring框架无缝集成。html
它提供了三大核心能力:java
能够看出图中存在着五种角色:git
图上的过程能够这么来解释:github
这里咱们采用 zookeeper 做为服务注册中心,这里我查阅官方文档发现 Redis 也能够做为Dubbo的注册中心,只不过在应用中比较少见,并且官方文档中也说明了:redis
若是咱们想用的话,只须要把
dubbo.registry.addrss
的值改成redis://127.0.0.1:6379
便可使用。spring
理论到这里,下面就让咱们来进入实战吧~apache
这里我是在 Mac OS 环境下进行安装,你能够在本地安装虚拟机来完成这个操做。浏览器
首先咱们须要前往官网下载安装包。springboot
# 0. 解压
tar -zxvf zookeeper-3.4.13.tar.gz
# 1. 切换到解压后的目录下
cd zookeeper-3.4.13/
# 2. 创建data和logs目录
mkdir data
mkdir logs
# 3. 复制zoo_sample.cfg 为 zoo.cfg
cd conf/
cp zoo_sample.cfg zoo.cfg
# 4. 修改配置
vi zoo.cfg
dataDir=刚刚新建的data目录的绝对路径
logDir=刚刚新建的data目录的绝对路径
# 5. 启动
cd ../bin
./zkServer.sh start
# 6. 检测是否启动成功
./zkServer.sh status
复制代码
引入咱们项目须要的Maven依赖:bash
<! --这里的包不要写错了,我试了一下阿里的starter,发现有不少问题,并无这个好用 -->
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
复制代码
而后对注册中心以及服务接口包的暴露的配置
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=27899
spring.dubbo.scan=indi.viyoung.dubbo.provider.service
复制代码
编写Service
接口和实现类:
public interface TestService {
String test();
}
复制代码
@Service
public class TestServiceImpl implements TestService {
@Override
public String test() {
return "Hello Wolrd";
}
}
复制代码
须要注意的是这里的Service
注解必须是dubbo包下的哟,可千万别写错了!
一样要引入依赖:
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
复制代码
Consumer的配置的话比较少:
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
复制代码
直接在Controller中引用
public class TestController {
@Reference
private TestService testService;
@RequestMapping()
public String hello() {
return testService.test();
}
}
复制代码
注意这里的@Reference
注解不要写错,应该是Dubbo包下的!
而后把项目启动后,咱们访问一下:
Nice,访问成功!
下面,咱们来学习一下Dubbo-Admin的使用
Dubbo-Admin以前给个人感受就是没有UI的样子:
git clone https://github.com/apache/incubator-dubbo-ops.git
复制代码
首先从Git上把这个项目拉下来,用IDEA打开:
只须要添加一个端口号的配置,而后使用左侧的maven打包工具打包:
而后去dubbo-admin-server的target的目录下使用如下命令:
java -jar dubbo-admin-server-0.1.jar >run.log &
复制代码
而后打开浏览器,输入localhost:7070
对比以前的UI简直强了无数倍,并且贼方便!
具体的功能你们能够跟着操做以后去探讨,这里就再也不展开来讲了。