暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Apache Dubbo 概述

东神殿下 2021-09-17
1056

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提供了六大核心能力:面向接口代理的高性能RPC调用, 智能容错和负载均衡, 服务自动注册和发现, 高度可扩展能力, 运行期流量调度, 可视化的服务治理与运维。


Dubbo架构

Dubbo基于消费端的自动服务发现能力,其基本工作原理如下图:


节点角色说明:


虚线都是异步访问,实线都是同步访问 深蓝虚线:在启动时完成的功能 浅蓝色虚线(实线)都是程序运行过程中执行的功能


调用关系说明:

0:服务容器负责启动,加载,运行服务提供者。
1:服务提供者在启动时,向注册中心注册自己提供的服务。
2:服务消费者在启动时,向注册中心订阅自己所需的服务。

3:注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心              将基于长连接推送变更数据给消费者。

4:服务消费者,从提供者地址列表中,基于负载均衡算法,选一台提供              者进行调用,如果调用失败,再选另一台调用。
5:服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分              钟发送一次统计数据到监控中心。


Dubbo相关依赖
            <dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.6.0</version>
    </dependency>


    <dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.4.7</version>
    </dependency>


    <dependency>
    <groupId>com.github.sgroschupf</groupId>
    <artifactId>zkclient</artifactId>
    <version>0.1</version>
    </dependency>

    <dependency>
    <groupId>javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.12.1.GA</version>
    </dependency>


    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.47</version>
    </dependency>
    复制

                                                                                                                                            未完待续...


    文章转载自东神殿下,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论