欢迎访问我的GitHub
https://github.com/zq2599/blog_demos
内容:所有原创文章分类和汇总,及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;
关于dubbo
- Apache Dubbo (发音ˈdʌbəʊ) 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现;
- 以下是来自官方的架构图:
版本简介和选定
- 截止写此文时,Dubbo 社区主力维护的有 2.6.x 和 2.7.x 两大版本;
- 2.6.x 主要以 bugfix 和少量 enhancements 为主,因此能完全保证稳定性;
- 2.7.x 作为社区的主要开发版本,得到持续更新并增加了大量新 feature 和优化,同时也带来了一些稳定性挑战;
- 综上所述,《dubbo实战》系列选择了社区推荐的2.7.6版本,这是2.7系列的稳定版;
环境信息
我这边用来编码的环境如下:
- 操作系统:macOS Catalina 10.15.5
- JDK:1.8.0_121
- Maven:33.3.9
- 开发工具:IntelliJ IDEA 2019.3.2 (Ultimate Edition)
注意事项
如果您是在windows环境运行代码,并且安装了VMWare,请您关闭对应的虚拟网卡,否则在广播模式(Multicast)时,consumer可能无法找到自己所需的服务;
本篇概览
- 作为《dubbo实战》系列的开篇,本文的主要内容如下:
- 创建整个《dubbo实战》系列的父工程;
- 创建整个《dubbo实战》系列的公共二方库;
- 初步体验dubbo框架,为了简单,本篇的实战暂不使用注册中心,而是服务提供方启动时广播自己的地址,再由消费方启动时订阅,并随时远程调用,调用逻辑如下图所示:
- 先创建一个提供远程服务的子工程,名为helloxmldirectprovider,并运行起来;
- 再创建名为helloxmldirectconsumer的子工程,运行起来后,会调用helloxmldirectprovider提供的远程服务,将远端返回的内容打印出来;
- 接下来开始编码;
源码下载
- 如果您不想编码,可以在GitHub下载所有源码,地址和链接信息如下表所示(
https://github.com/zq2599/blog_demos):
- 这个git项目中有多个文件夹,本章的应用在dubbopractice文件夹下,如下图红框所示: