初识Dubbo
本文是上一篇文章的后续,详情点击该链接~
Dubbo
Dubbo可实现透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置即可,没有任何API 侵入。
软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点
服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。
Dubbo官网地址我们进入到官网之后很快就会看到页面上很直接的一句介绍了Dubbo的话。
历史
说起Dubbo的历史,其实在很早的时候,Dubbo是阿里巴巴内部使用的框架。它最大的特点就是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度的松耦合)。从服务模型角度来看,Dubbo采用的是一种非常简单的模型,要么提供方提供服务,要么消费方消费服务。所以基于这一点可以抽象出服务方和消费方两个角色。
在2019年以前,Dubbo是阿里巴巴的,但是后来捐给apache,从2.7版本以后都是由阿帕奇来维护。
我们先来到Maven仓库搜索Dubbo看看
这里面有两个Dubbo,一个是阿里巴巴,一个是阿帕奇。
再来阿帕奇这里
Dubbo支持的协议
Dubbo协议(官方推荐协议)
优点: 采用NIO 复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,性能较好(推荐使用)
缺点: 大文件上传时,可能出现问题(不使用Dubbo文件上传)
RMI(RemoteMethodInvocation)协议
优点:JDK自带的能力
缺点:偶尔连接失败
Hessian协议
优点:可与原生 Hessian互操作,基于 HTTP 协议
需 hessian.jar 支持,http短连接的开销大
Dubbo支持的注册中心
Zookeeper(官方推荐)
优点:支持分布式.很多周边产品.
缺点:受限于 Zookeeper 软件的稳定性。Zookeeper 是一款专门为分布式架构提供辅助型处理的软件,稳定较优。
Multicast
优点:去中心化,不需要单独安装软件.
缺点:2.2.1Provider 和 Consumer 和Registry 不能跨机房(路由)
Redis
优点:支持集群,性能高
缺点:要求服务器时间同步.否则可能出现集群失败问题
Simple
优点:标准的RPC服务,没有兼容问题
缺点:不支持集群
使用Dubbo完成第一个简单的远程调用
导入依赖
<!--继承SpringBoot项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.10.RELEASE</version>
</parent>
<dependencies>
<!--SpringBoot的启动器依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.1.10.RELEASE</version>
</dependency>
<!--dubbo的依赖-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.3</version>
</dependency>
<!--zk的依赖-->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>4.2.0</version>
</dependency>
</dependencies>
yml配置
##配置Zookeeper的连接信息
dubbo:
application:
name: dubbo-provider
registry:
address: zookeeper://192.168.147.128:2181
##配置服务提供者的端口号
protocol:
port: 20880
建好启动类和Service
我们现在启动一下springBoot,至于好不好使,现在的话呢,也只能先打开Linux,进入zookeeper看一看~
我们可以看到,刚才创建的文件已经添加到zookeeper中