Apache Dubbo概述

Dubbo 简介
        Apache Dubbo是一款高性能的 Java RPC 框架。其前身是阿里巴巴公司开源的、轻量级的开源 Java RPC 框架,可以和Spring 框架无缝集成, 2018 年阿里巴巴把这个框架捐献给了 apache 基金会。
什么是 RPC
        RPC全称为 remote procedure call ,即 远程过程调用 。比如两台服务器 A B A 服务器上部署一个应 用,B 服务器上部署一个应用, A 服务器上的应用想调用 B 服务器上的应用提供的方法,由于两个应用不 在一个内存空间,不能直接调用,所以需要通过网络来表达调用的语义和传达调用的数据。
        需要注意的是RPC并不是一个具体的技术,而是指整个网络远程调用过程。
RPC 是一个泛化的概念,严格来说一切远程过程调用手段都属于 RPC 范畴。各种开发语言都有自己的 RPC框架。 Java 中的 RPC 框架比较多,广泛使用的有 RMI Hessian Dubbo 等。
        Dubbo官网地址: http://dubbo.apache.org
        Dubbo提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发 现。
Dubbo 架构

 

        虚线都是异步访问,实线都是同步访问 蓝色虚线: 在启动时完成的功能 红色虚线 ( 实线 ) 都是程序运行过 程中执行的功能
调用关系说明 :
        0. 服务容器负责启动,加载,运行服务提供者。
        1. 服务提供者在启动时,向注册中心注册自己提供的服务。
        2. 服务消费者在启动时,向注册中心订阅自己所需的服务。
        3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给 消费者。
        4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失 败,再选另一台调用。
        5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
服务注册中心 Zookeeper
        通过前面的Dubbo 架构图可以看到, Registry (服务注册中心)在其中起着至关重要的作用。 Dubbo 官 方推荐使用Zookeeper 作为服务注册中心。
Zookeeper 介绍
流程说明:
        服务提供者(Provider) 启动时 : /dubbo/com.foo.BarService/providers 目录下写入自己的
URL 地址
        服务消费者(Consumer) 启动时 : 订阅 /dubbo/com.foo.BarService/providers 目录下的提供者
URL 地址。并向 /dubbo/com.foo.BarService/consumers 目录下写入自己的 URL 地址
        监控中心(Monitor) 启动时 : 订阅 /dubbo/com.foo.BarService 目录下的所有提供者和消费者
URL 地址
安装 Zookeeper
        下载地址: http://archive.apache.org/dist/zookeeper/
        下载完成后可以获得名称为zookeeper-3.4.6.tar.gz 的压缩文 件。
        安装步骤:第一步:安装 jdk (略) 第二步:把 zookeeper 的压缩包( zookeeper-3.4.6.tar.gz )上传到 linux 系 统 第三步:解压缩压缩包 tar -zxvf zookeeper-3.4.6.tar.gz -C /usr
        第四步:进入 zookeeper-3.4.6 目 录,创建data 目录 mkdir data
        第五步:进入conf 目录 ,把 zoo_sample.cfg 改名为 zoo.cfg cd conf mv zoo_sample.cfg zoo.cfg
        第六步:打开zoo.cfg 文件 , 修改 data 属性: dataDir=/usr/zookeeper- 3.4.6/data
3.3 启动、停止 Zookeeper
进入 Zookeeper bin 目录,启动服务命令 ./zkServer.sh start
停止服务命令 ./zkServer.sh stop
查看服务状态: ./zkServer.sh status
客户端连接
./zkCli.sh
Dubbo 快速入门
        Dubbo作为一个 RPC 框架,其最核心的功能就是要实现跨网络的远程调用。本小节就是要创建两个应 用,一个作为服务的提供方,一个作为服务的消费方。通过Dubbo 来实现服务消费方远程调用服务提供
方的方法。
4. 服务提供方开发
开发步骤:
1 )创建 maven 工程(打包方式为 war dubbodemo_provider ,在 pom.xml 文件中导入如下坐标
<properties>
<project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding>
<maven.compiler.source> 1.8 </maven.compiler.source>
<maven.compiler.target> 1.8 </maven.compiler.target>
<spring.version> 5.0.5.RELEASE </spring.version>
</properties>
<dependencies>
<dependency>
<groupId> org.springframework </groupId>
<artifactId> spring-context </artifactId>
<version> ${spring.version} </version>
</dependency>
<dependency>
<groupId> org.springframework </groupId>
<artifactId> spring-beans </artifactId>
<version> ${spring.version} </version>
</dependency>
<dependency>
<groupId> org.springframework </groupId>
<artifactId> spring-webmvc </artifactId>
<version> ${spring.version} </version>
</dependency>
<dependency>
<groupId> org.springframework </groupId>
<artifactId> spring-jdbc </artifactId>
<version> ${spring.version} </version>
</dependency> <dependency>
<groupId> org.springframework </groupId>
<artifactId> spring-aspects </artifactId>
<version> ${spring.version} </version>
</dependency>
<dependency>
<groupId> org.springframework </groupId>
<artifactId> spring-jms </artifactId>
<version> ${spring.version} </version>
</dependency>
<dependency>
<groupId> org.springframework </groupId>
<artifactId> spring-context-support </artifactId>
<version> ${spring.version} </version>
</dependency>
<!-- dubbo 相关 -->
<dependency>
<groupId> com.alibaba </groupId>
<artifactId> dubbo </artifactId>
<version></
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值