zoukankan      html  css  js  c++  java
  • Dubbo简介

    官方说明

    Apache Dubbo 是一个高可用的,基于Java的开源RPC框架。

    Dubbo框架不仅仅是具备RPC访问功能,还包含服务治理功能。

    发展历史

    • Dubbo是最开始是阿里巴巴内部使用的RPC框架。
    • 2011年对外提供。
    • 2012年停止更新。
    • 2017年开始继续更新。
    • 2019年捐献给Apache,由Apache维护2.7以上版本。

    Dubbo架构讲解

    架构图

    架构说明

    虚线

    虚线表示异步,实线表示同步。异步不阻塞线程性能高,同步阻塞线程必须等待响应结果才能继续执行,相对性能低。

    Provider

    提供者。编写持久层和事务代码。

    Container

    容器(Spring容器),Dubbo完全基于Spring实现的。

    Registry

    注册中心。放置所有Provider对外提供的信息。包含Provider的IP,访问端口,访问遵守的协议,对外提供的接口,接口中有哪些方法等相关信息。

    Consumer

    消费者(RPC调用者,SOA调用服务的项目)开发中也是一个项目,编写service和controller(还可以报页面等)。调用XXXXServiceImpl中的方法。

    Monitor

    监控中心。监控Provider的压力情况等。每隔2分钟Consumer和Provider会把调用次数发送给Monitor,由Monitor进行统计。

    执行流程

    1. start:启动Spring容器时会把Provider启动。

    2. register:把Provider相关信息注册到Registry里

    3. subscribe:Consumer从Registry中订阅Provider的信息

    4. notify:通知给Consumer

    5. invoke:Consumer根据Registry通知的信息进行调用Provider中方法。

    6. count:Consumer和Provider把调用次数信息异步发送给Monitor进行统计。

    Dubbo支持的协议

    Dubbo协议(官方推荐协议)

    优点:

    采用NIO复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,性能较好(推荐使用)

    缺点:

    大文件上传时,可能出现问题(不使用Dubbo文件上传)

    RMI(Remote Method Invocation)协议

    优点:

    JDK自带的能力。

    缺点:

    偶尔连接失败.

    Hessian协议

    优点:

    可与原生Hessian互操作,基于HTTP协议

    缺点:

    需hessian.jar支持,http短连接的开销大

    Dubbo支持的注册中心

    1.Zookeeper(官方推荐)

    1) 优点:

    支持分布式.很多周边产品.

    2) 缺点:

    受限于Zookeeper软件的稳定性.Zookeeper专门分布式辅助软件,稳定较优

    2.Multicast

    1) 优点:

    去中心化,不需要单独安装软件.

    2) 缺点:

    2.2.1 Provider和Consumer和Registry不能跨机房(路由)

    3.Redis

    1) 优点:

    支持集群,性能高

    2) 缺点:

    要求服务器时间同步.否则可能出现集群失败问题.

    4.Simple

    1) 优点:

    标准RPC服务.没有兼容问题

    2) 缺点:

    不支持集群.

     
     
    注重细节——关注底层——注重细节——关注底层——注重细节——关注底层——注重细节——关注底层——注重细节——关注底层
  • 相关阅读:
    【Java】 大话数据结构(5) 线性表之双向链表
    反射
    面对对象总结
    面向对象的三大特性
    面向对象基础
    python常见模块之序列化(json与pickle以及shelve)
    python常见模块之os模块
    python常见模块之random模块
    python常见模块之time模块
    python常见模块之collections模块
  • 原文地址:https://www.cnblogs.com/PJG20/p/14719951.html
Copyright © 2011-2022 走看看