第二章 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

一、第一个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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值