写点什么

Dubbo 快速入门

用户头像
青年IT男
关注
发布于: 2021 年 04 月 25 日
Dubbo快速入门

前言

大家好,今天开始给大家分享 — Dubbo 专题之 Dubbo 快速入门:在前面的章节中我们介绍了 Dubbo 中四大角色以及服务注册和服务引用流程分析,那么从这个章节开始我们开始进入实战阶段。其中可能会引入一些新的概念和新技术,本手册主要讲解 Dubbo 相关知识体系,如果涉及到其他技术栈请各位小伙伴自行查阅资料或者我后面进行讲解分享。


1. 技术选型

在 Dubbo 简介章节中我们对比了 RPC 生态相关技术选型:以下罗列出比较流行的 RPC 框架对比



  • Dubbo:阿里巴巴开源

  • Montan:新浪微博开源

  • rpcx:Golang net/rpc

  • gRPC:Google 开源

  • Thrift:Facebook 开源


以下是来自于压力测试结果,我们主要对比 gRPC、Dubbo、montan、Thrift:



我们主要从几个维度来考察一个框架的成熟度:


  • 社区活跃和成熟度。

  • 框架配置管理工具。

  • 与成熟框架集成度。 例如:Spring、SpringBoot 等

  • 框架入侵程度。

  • 性能指标。


综合以上多个维度考虑 Dubbo 自 2010 年开源至今国内线上或线下社区活跃度极高、Dubbo 服务治理工具相对完善、对 Spring 以及 SpringBoot 完美集成、框架对代码入侵极低甚至几个注解就能搞定、在高并发情况下依然维持相对好的表现能力。

2. SpringBoot 环境搭建

**Tips:**在这里我们选择使用 SpringBoot2.3.4 最新版本。


首先新建 SpringBoot 项目有很多种方式可以根据自己使用的开发工具来生成,这里我主要介绍两种方式:


第一种使用 Idea 工具:


  • 首先打开 Idea File->New->Project->Spring Initializr 选择 JDK 版本点击 Next。


  • 设置 Group、Artifact 等等 点击 Next。


  • 这里我们选择 Web 用于测试 点击 Next。



第二种使用 Spring 官网提供的代码生成工具:


  • 首先打开 https://start.spring.io 地址 。



  • 设置 Group、Artifact 等等 点击ADD DEPENDENCIES...⌘ + B按钮添加 Web 依赖。

  • 点击GENERATE⌘ + ⏎按钮生成项目。项目结构如下:


3. Dubbo 框架集成

**Tips:**使用 Dubbo2.7.8 最新版本,这里我们使用 *-starer 简化集成操作。


首先我们到 Maven 中央仓库搜索 Dubbo 选择dubbo-spring-boot-starer



在我们的项目 pom.xml 中加入:


<dependency>  <groupId>org.apache.dubbo</groupId>  <artifactId>dubbo-spring-boot-starter</artifactId>  <version>2.7.8</version></dependency>
复制代码


**Tips:**这里我们使用的 apache 的版本,alibaba 维护的版本有一些差异。


其次部署 zookeeper3.6.2 ,下载地址:https://downloads.apache.org/zookeeper/zookeeper-3.6.2/不会安装的小伙伴可以参考网上相关文章。

4. 实战

这里我们模拟一个获取图书列表的服务,通过一个 Http 请求的方式转发调用我们的 Dubbo 接口,这里的 Dubbo 接口模拟的就是我们后端的微服务应用。架构图如下:



目录结构:


|- quickstart


​ |-- domain :存放领域模型


​ |-- facade:Dubbo 对外暴露服务


​ |-- web:对外提供 Http 服务



配置 application.properties 文件:


#Web端口server.port=8080#应用名称spring.application.name=course#Dubbo扫描路径dubbo.scan.base-packages=com.muke.dubbocourse#使用协议dubbo.protocol.name=dubbo#Dubbo端口dubbo.protocol.port=12345#配置zookeeper注册中心 dubbo.registry.address=zookeeper://127.0.0.1:2181
复制代码


具体的实现代码小伙伴可以下载源码:https://gitee.com/newitman/course.git

5. Demo 演示

  1. 启动项目的 main 函数com.muke.dubbocourse.DubbocourseApplication#main

  2. 我们通过浏览器访问地址:http://127.0.0.1:8080/books/query 获取书列表信息。



调用流程图:


6. 小结

在本小节中我们主要学习了 Dubbo 在 RPC 技术选择中的优势、SpringBoot 项目的两种搭建方式以及 SpringBoot 与 Dubbo 的集成流程。最后用一个简单的获取图书 Demo 例子完整的演示了 Dubbo 项目的基本开发流程。


本节课程的重点如下:


  1. 了解 Dubbo 在 RPC 技术选择中的优势

  2. 理解 SpringBoot 快速搭建项目方式

  3. 了解 SpringBoot 与 Dubbo 项目整合

  4. 基本的 Dubbo 服务开发流程

作者

个人从事金融行业,就职过易极付、思建科技、某网约车平台等重庆一流技术团队,目前就职于某银行负责统一支付系统建设。自身对金融行业有强烈的爱好。同时也实践大数据、数据存储、自动化集成和部署、分布式微服务、响应式编程、人工智能等领域。同时也热衷于技术分享创立公众号和博客站点对知识体系进行分享。关注公众号:青年 IT 男 获取最新技术文章推送!


博客地址: http://youngitman.

微信公众号:



知识星球:



发布于: 2021 年 04 月 25 日阅读数: 24
用户头像

青年IT男

关注

站在巨人肩上看得更远! 2018.04.25 加入

从事金融行业,就职过易极付、思建科技、网约车平台等一流技术团队,目前就职于银行负责支付系统建设。对金融行业有强烈的爱好。实践大数据、数据存储、自动化集成和部署、分布式微服务、响应式编程、人工智能等领域

评论

发布
暂无评论
Dubbo快速入门