dubbo实战之一:准备和初体验

欢迎访问我的GitHub
内容:所有原创文章分类和汇总 , 及配套源码 , 涉及Java、Docker、Kubernetes、DevOPS等;
关于dubbo

  • Apache Dubbo (发音?d?b??) 是一款高性能、轻量级的开源Java RPC框架 , 它提供了三大核心能力:面向接口的远程方法调用 , 智能容错和负载均衡 , 以及服务自动注册和发现;
  • 以下是来自官方的架构图:

dubbo实战之一:准备和初体验文章插图
版本简介和选定
  • 截止写此文时 , Dubbo 社区主力维护的有 2.6.x 和 2.7.x 两大版本;
  • 2.6.x 主要以 bugfix 和少量 enhancements 为主 , 因此能完全保证稳定性;
  • 2.7.x 作为社区的主要开发版本 , 得到持续更新并增加了大量新 feature 和优化 , 同时也带来了一些稳定性挑战;
  • 综上所述 , 《dubbo实战》系列选择了社区推荐的2.7.6版本 , 这是2.7系列的稳定版;
环境信息我这边用来编码的环境如下:
  1. 操作系统:macOS Catalina 10.15.5
  2. JDK:1.8.0_121
  3. maven:33.3.9
  4. 开发工具:IntelliJ IDEA 2019.3.2 (Ultimate Edition)
注意事项如果您是在windows环境运行代码 , 并且安装了VMWare , 请您关闭对应的虚拟网卡 , 否则在广播模式(Multicast)时 , consumer可能无法找到自己所需的服务;
本篇概览
  • 作为《dubbo实战》系列的开篇 , 本文的主要内容如下:
  • 创建整个《dubbo实战》系列的父工程;
  • 创建整个《dubbo实战》系列的公共二方库;
  • 初步体验dubbo框架 , 为了简单 , 本篇的实战暂不使用注册中心 , 而是服务提供方启动时广播自己的地址 , 再由消费方启动时订阅 , 并随时远程调用 , 调用逻辑如下图所示:

dubbo实战之一:准备和初体验文章插图
  • 先创建一个提供远程服务的子工程 , 名为helloxmldirectprovider , 并运行起来;
  • 再创建名为helloxmldirectconsumer的子工程 , 运行起来后 , 会调用helloxmldirectprovider提供的远程服务 , 将远端返回的内容打印出来;
  • 接下来开始编码;
源码下载
  • 如果您不想编码 , 可以在GitHub下载所有源码 , 地址和链接信息如下表所示():

dubbo实战之一:准备和初体验文章插图
  • 这个git项目中有多个文件夹 , 本章的应用在dubbopractice文件夹下 , 如下图红框所示:

dubbo实战之一:准备和初体验文章插图
    • dubbopractice是父子结构的工程 , 本篇的代码在helloxmldirectprovider和helloxmldirectconsumer这两个子工程中 , 如下图:

dubbo实战之一:准备和初体验文章插图
《dubbo实战》系列的父工程
  1. 为了方便管理《dubbo实战》系列的代码和依赖库版本的管理 , 这里创建名为dubbopractice的父maven工程 , 整个系列的后续源码都会作为它的子工程;
  2. dubbopractice的pom.xml内容如下:
practiceinterfacehelloxmldirectproviderhelloxmldirectconsumerspringbootzkproviderspringbootzkconsumerspringbootmulticastprovider