分布式系列~06.初识Dubbo

初识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中

猜你喜欢

转载自blog.csdn.net/qq_41424688/article/details/107720789