文章目录
前言
以下内容均来自,开课吧老雷,感谢老雷第一章Dubbo概述 https://blog.csdn.net/gqs2019/article/details/115366306
第二章 Dubbo系统框架搭建 https://blog.csdn.net/gqs2019/article/details/115370178
第三章 Dubbo高级配置 https://blog.csdn.net/gqs2019/article/details/115403364
第四章 Dubbo的系统架构解析 https://blog.csdn.net/gqs2019/article/details/115456656
第五章Dubbo 的内核解析 https://blog.csdn.net/gqs2019/article/details/115457046
第六章 Dubbo的源码解析 https://blog.csdn.net/gqs2019/article/details/115460065
一、第一个Dubbo程序(直连式)
1.创建业务接口工程00-api
业务接口名即服务名称。无论是服务提供者向服务注册中心注册服务,还是服务消费者
从注册中心索取服务,都是通过接口名称进行注册与查找的。即,提供者与消费者都依赖于
业务接口。所以,一般情况下,会将业务接口专门定义为一个工程,让提供者与消费者依赖。
(1) 创建 Maven 的 Java 工程
2) 创建业务接口
(3) 修改 pom 文件
这个 pom 中无需任何依赖。
2.创建提供者(自建spring容器)01-provider
(1) 创建工程
创建一个 Maven 的 Java 工程,并命名为 01-provider。
(2) 在 pom 中导入依赖
A、依赖导入
主要包含三类依赖:
? 业务接口依赖
? Dubbo 依赖(2.7.0 版本)
? Spring 依赖(4.3.16 版本)
(3) 定义接口实现类
(4) 定义 spring-provider 配置文件
在 src/main/resources 下定义 spring-provider.xml 配置文件。
(5) 定义测试类
在/src/test/java 中创建测试类 RunProvider。
3.创建提供者(Main启动)01-provider2
使用自建 Spring 容器方式是比较浪费资源的。容器的作用仅仅就是创建一个单例的提供
者对象,其本身并不需要 Tomcat 或 JBoss 等 Web 容器的功能。如果硬要用 Web 容器去
加载服务提供方,就增加了代码的复杂性,也浪费了资源。
Dubbo 提供了一个 Main.main()方法可以直接创建并启动 Provider,其底层仅仅是加载了
一个简单的用于暴露服务的 Spring 容器。该方式要求 Spring 配置文件必须要放到类路径下
的 META-INF/spring 目录中,Spring 配置文件名称无所谓。
(1) 工程创建
复制 01-provider 工程,并修改其工程名 01-provider2。
(2) 创建目录并移动配置文件
在 resources 目录中创建 META-INF/spring 目录,并将 spring-provider.xml 配置文件拖入
其中。
(3) 修改启动类
4.创建消费者01-consumer
(1) 创建工程
创建一个 Maven 的 Java 工程,并命名为 01-consumer。
(2) 在 pom 中导入依赖
该工程的依赖与 Provider 中的完全相同,直接复制来就可以。
(3) 定义 spring-consumer 配置文件
(4) 定义消费者类
二、Zookeeper注册中心
在生产环境下使用最多的注册中心为 Zookeeper,当然,Redis 也可以做注册中心。下面
就来学习 Zookeeper 作为注册中心的用法。
1.创建提供者02-provider-zk
(1) 导入依赖
复制前面的提供者工程 01-provider,并更名为 02-provider-zk。修改 pom 文件,并在其
中导入 Zookeeper 客户端依赖 curato
(2) 修改 spring 配置文件
2.创建消费者 02-consumer-zk
(1) 导入依赖
复制前面的消费者工程 01-consumer,并更名为 02-consumer-zk。修改 pom 文件,并在
其中导入 Zookeeper 客户端 curator 依赖。
(2) 修改 Spring 配置文件
3.添加日志文件
通过前面的运行可知,无论是提供者还是消费者,控制台给出的提示信息都太少,若想
看到更多的信息,可以在提供者与消费者工程的类路径 src/main/resources 下添加日志文件。
可以添加 log4j.xml,即使用 log4j2 日志技术;也可以添加 log4j.properties,即使用 log4j 日志
技术。我们这里添加 log4j.properties 文件。
(1) 提供者添加日志文件
在提供者的 src/main/resources 目录中添加 log4j.properties 文件。运行后可以看到如下
的日志输出。其中最为重要的是 provider://xxxxx,这里显示的就是当前工程所提供的能够被
订阅的服务描述,即服务元数据信息。另外,我们还可以看到当前应用与 qos-server(Quality
of Service 服务器,即 Dubbo 的管控平台)进行通信的端口号为 22222。
(2) 消费者添加日志文件
在提供者的 src/main/resources 目录中添加 log4j.properties 文件。运行后在控制台的日
志输出中可以看到报错。其报错内容原因是,消费者连接 qos-server 的端口号被占用了。其
与 qos-server 通信的端口号默认也为 22222,已经被提供者给占用了。当然,原因主要是由
于消费者与提供者都在同一主机,若分别存在于不同的主机也不会报错。
所以解决方案就是为消费者修改与 qos-server 通信的端口号。有两种修改方式。可以在
src/main/resources 中新建一个 dubbo.properties 文件,文件内容仅需如下一行:
也可以直接在 spring-consumer.xml 文件中修改。
修改端口号后再运行,就没有了报错。
三、将Dubbo应用到web工程
前面所有提供者与消费者均是 Java 工程,而在生产环境中,它们都应是 web 工程,Dubbo
如何应用于 Web 工程中呢?
1.创建提供者03-provider-web
(1) 创建工程
创建 Maven 的 web 工程,然后将 02-provider-zk 中的 Service 实现类及 spring-provider
配置文件复制到当前工程中
(2) 导入依赖
这里使用的 Spring 的版本为 4.3.16。
需要的依赖有:
? dubbo2.7.0 版本依赖
? zk 客户端 curator 依赖
? servlet 与 jsp 依赖
? spring 相关依赖
? spring 需要的 commons-logging 依赖
? 自定义 00-api 依赖
(3)修改spring-provider.xml
2.创建消费者03-provider-web
(1) 创建工程
创建 Maven 的 web 工程,然后将 02-consumer-zk 中的 spring-provider 配置文件复制到
当前工程中。
(2) 导入依赖
与提供者工程中的依赖相同。
(3) 定义处理器
修改 spring-consumer.xml
四、Dubbo管理控制台
2019 年初,官方发布了 Dubbo 管理控制台 0.1 版本。结构上采取了前后端分离的方式,
前端使用 Vue 和 Vuetify 分别作为 Javascript 框架和 UI 框架,后端采用 Spring Boot 框架。
1.下载
Dubbo 管理控制台的下载地址为:https://github.com/apache/dubbo-admin
2.配置
这是一个 Spring Boot 工程,在下载的 zip 文件的解压目录的如下目录中修改配置文件。
主要就是配置注册中心、配置中心,与元数据中心的地址。当然,这是一个 springboot 工程,
默认端口号为 8080,若要修改端口号,则在配置文件中增加形如 server.port=8888 的配置。
dubbo-admin-develop\dubbo-admin-server\src\main\resources\application.properties
这个配置文件,针对不同版本 Dubbo 应用的管控,有不同的配置方式。
(1) 管控 dubbo2.6 版本
以下配置方式对于 2.6 与 2.7 版本的 Dubbo 应用都可以进行管控。但无法查看应用的元
数据信息。
(2) 管控 dubbo2.7 版本
以下配置方式对于 2.7 版本的 Dubbo 应用可正常进行管控。但会导致 2.6 版本应用无法
正常启动。原因是该方式的配置会在 zk 中创建一个元数据中心,然后在 2.6 版本应用启动
时会查找下 zk 的元数据中心工厂扩展类,会找不到,然后无法启动。
A、修改 application.properties
B、 修改 zk 中的配置
在/dubbo 节点下再手工创建出 config/dubbo/dubbo.properties 子节点,并在
dubbo.properties 节点中如加如下的节点内容。添加完成后,点击上面的保存按钮保存。
3.打包
在命令行窗口中进入到解压目录根目录,执行打包命令,跳过 test 阶段。
打包结束后,进入到解压目录下的 dubbo-admin-distribution 目录下的 target 目录。该
目录下有个 dubbo-admin-0.1.jar 文件。该 Jar 包文件即为 Dubbo 管理控制台的运行文件,可
以将其放到任意目录下运行。
4.运行
(1) 启动 zk
(2) 启动管控台
将 dubbo-admin-0.1.jar 文件存放到任意目录下,例如 D 盘根目录下,直接运行。
(3) 访问
在浏览器地址栏中输入 http://localhost:8080 ,即可看到 Dubbo 管理控制台界面。
以下内容均来自,开课吧老雷,感谢老雷
第一章Dubbo概述 https://blog.csdn.net/gqs2019/article/details/115366306
第二章 Dubbo系统框架搭建 https://blog.csdn.net/gqs2019/article/details/115370178
第三章 Dubbo高级配置 https://blog.csdn.net/gqs2019/article/details/115403364
第四章 Dubbo的系统架构解析 https://blog.csdn.net/gqs2019/article/details/115456656
第五章Dubbo 的内核解析 https://blog.csdn.net/gqs2019/article/details/115457046
第六章 Dubbo的源码解析 https://blog.csdn.net/gqs2019/article/details/115460065