Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 [1] Spring框架无缝集成。
Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
——来自百度百科
一、dubbo的调用流程
这里借助一张官方的图片
二、项目概述
创建项目之前,先简单的概述以下:
上面说到dubbo是一个优秀的rpc框架,那么具体在我们搭建项目的时候要怎么做呢?
1、使用dubbo的项目比SpringCloud项目要简单,一般情况我们会有一个项目是对外提供服务的,也就是我们理解中的消费者。
2、对外提供服务的部分也就是我们理解的生产者
3、公共定义的接口
4、有了以上三者,我们就可以在消费者中调用公共定义的接口,而生产者实现该接口,调用时利用dubbo的rpc远程调用就能够实现完整的调用流程!
三、搭建项目概述
我自己搭建的dubbo的demo供参考(项目中包含一个war包是编译好的dubbo-admin):
下载链接://download.csdn.net/download/weixin_45417573/12104141
在项目搭建之前,我们需要先安装zookeeper,作为dubbo的注册中心使用,安装过程在我的上一篇笔记中
1、创建父项目,打包类型为pom,用于统一管理依赖版本和方便项目打包发布等,父项目的父项目为SpringBoot(项目名:db)
2、在父项目下创建一个maven model,也就是我们上面说的公共定义接口用的项目,并添加基本的常用依赖(项目名:db-common)
3、创建一个maven model,作为服务提供者,也就是我们说的生产者,该项目依赖db-common,并添加基本的常用依赖(项目名:db-car)
4、创建一个maven model,作为服务调用者,也就是我们说的消费者,该项目依赖db-common,并添加基本的常用依赖(项目名:db-web)
5、为生产者和消费者分别添加启动类和yml文件,并在yml文件中添加基本的配置
四、dubbo的远程调用
上面仅仅是概述了一下项目的搭建,这里具体说一下关于dubbo的远程调用和服务注册
1、在db-common中添加dubbo的依赖:
<!-- dubbo的依赖 -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
2、修改生产者(db-car)yml文件:
#dubbo的配置
dubbo:
scan:
#扫描的包
base-packages: com.wwy
application:
#服务名
name: db-car
registry:
#注册中心(zookeeper的地址和客户端端口)
address: zookeeper://192.168.40.152:2181
#协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
protocol: