首先,这是我个人学习的笔记,可能有些地方理解的不正确,发现请指出,谢谢
-
dubbo是干啥的?
- 通常我们在调用一个接口的时候,是调用当前接口的实现类;dubbo可以让我们像调用接口一样,调用外部服务器的实现;
-
dubbo使用流程:
-
1:安装zookeeper
- 这里zookeeper的作用是让dubbo将服务注册;
- zookeeper下载地址:https://archive.apache.org/dist/zookeeper/
- 我使用的是3.4.11,在windows下安装的;
- 在conf文件下,将zoo_sample.cfg复制一份,改名为zoo.cfg,打开,里面有个dataDir,表示log日志地址,clinePort表示端口号;
- 在bin下,有个zkService.cmd,是启动服务端,可以打开 zkCli.cmd测试启动是否成功,输入get / 会看到4个0x0的值,就表示启动成功了
-
2:安装控制台
- 地址: https://github.com/apache/dubbo-admin/tree/master ,下载完成后,进入dubbo-admin文件下,src-main-resources-application.properties,修改dubbo.registry.address=zookeeper://127.0.0.1:2181(对应上文zoo.cfg文件里的设置)
- 后退至pom.xml处,打开控制台,输入 mvn clean package打成jar包,在target里面找到,打开控制台,输入 java -jar dubbo-admin-…(table键补齐) 来运行这个jar包,启动完成之后会发现,端口是7001,打开ie,输入 localhost:7001,root root,如果看到页面,控制台就安装完成了
-
3:应用到项目
- 创建两个平时使用的boot项目,1:test-dubbo-service 2:test-dubbo-controller,导入jar包
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
- 在service项目中,创建service包和impl包,写一个接口和一个实现类,在实现类上面加入两个@Service注解,一个是dubbo提供的,一个是spring提供的,如果看着不习惯,可以将spring提供的改为@Component
application.properties配置文件中增加以下设置
dubbo.application.name=test-dubbo-service
dubbo.registry.address=zookeeper://127.0.0.7:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20190(自己随意设置,dubbo使用的端口号)
dubbo.scan.base-packages=com.xxx.service - 在controller项目中,创建controller包,和service包(不创建impl包),接口名要和service项目的接口一样;
- 在controller包 创建平时 创建的controller接口,平时我们使用@Autowired来让spring帮我们创建service对象,这里我们将@Autowired改为dubbo为我们提供给的@Reference;
- application.properties配置文件中增加以下设置
dubbo.application.name=test-dubbo-controller
dubbo.registry.address=zookeeper://127.0.0.7:2181
dubbo.scan.base-packages=com.xxx.controller - 启动service项目,启动controller项目,访问试试吧~
下面是监控中心安装(上面已经可以使用dubbo了,这里是监控每个接口的调用信息,运维使用)
-
找到我们之前在github下载的项目,dubbo-admin-master文件下的dubbo-monitor-simple文件下,含有pom.xml的文件中,打开控制台,mvn clean package,在target中找到一个解压包,tar.gz后缀的,解压,会看到一个dubbo-monitor-simple-2.0.0文件,里面有个conf可以修改配置,assembly.bin下的start.bat启动,打开ie输入localhost:8080有页面则成功了,上面的一行标签可以点一下看看
- 在配置中修改连接方式
dubbo.monitor.protocol=registry //表示从注册中心发现监控中心的地址,否则直连监控中心
dubbo.monitor.address=127.0.0.1:65432 //直接监控中心
下面是一些其他配置,可以修改dubbo的一些策略
- dubbo.consumer.check=false //消费方启动时,会自动检查服务方是否启动,这里设置为不检查
- dubbo.consumer.timeout=2000 //dubbo默认1秒超时,这个可以设置全局超时时间2秒
- dubbo.consumer.retries=3 //当服务调用失败了,最多重试3次,注:添加到数据库信息 性质的 接口不适合!!!
- @ImportResource(locations = “classpath:dubboConfig.xml”)//可以用xml配置dubbo
- @EnableDubbo//可以在启动类Application中加入这个注解,不写dubbo.scan.base-packages配置