1.什么是dubbo?

dubbo 是一个分布式服务框架 是一个高性能的RPC框架 它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

谈到了分布式服务框架 那必然有单一服务框架接下来就谈谈服务框架的演变过程

单一应用架构

当网站流量很小时 只需要一个应用 将所有的功能都部署在一个应用上

优点

  1. 节省带宽和成本
  2. 简单易用

缺点

  1. 由于把所有的功能部署在一个应用上 不方便扩展功能
  2. 不利于团队合作开发
  3. 不利于升级维护

垂直应用架构

有了缺点就会有改进于是 垂直应用架构就出现了  垂直应用框架将应用拆分成互不相关的应用

优点

  1. 通过切分应用来实现各个模块之间的相互独立 方便团队合作
  2. 由于模块之间的独立 使得维护成本和部署成本降低了
  3. 性能扩展更方便

缺点

  1. 由于模块不在同一个服务  使得公用模块之间的服务无法重复利用

分布式服务架构

当垂直应用越来越大 应用之间的交互不可避免 将核心业务抽取出来 作为独立的服务 逐渐形成稳定的服务中心 使前端应用能够适应多变的市场 此时 用于提供业务的复用及整合的分布式服务框架(RPC)是关键。

优点

  1. 模块之间可以相互调用 增加了重用率

缺点

  1. 当服务越来越多,容量的评估 小服务资源浪费的情况越来越显著

流动计算架构

当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)[ Service Oriented Architecture]是关键

什么叫RPC?

RPC【Remote Procedure Call】是指远程过程调用,说到远程过程调用 那就要谈到本地过程调用 本地过程中不同方法之间可以相互调用 但是它只适用于同一个服务中  当我们在多个服务中想调用不同服务中的方法这时候就需要RPC   它是一种进程间通信方式 适用于不同服务之间的通信

RPC两个核心模块:通讯,序列化。

2.为什么又要使用dubbo ?

1.透明化的远程方法调用,就像调用本地方法一样调用远程方法

2.支持负载均衡算法及容错机制

3.支持服务自动注册与发现

随着技术的发展 应用的发展也越来越快 项目的体积也越来越大  分布式服务框架也越来越常见 为了更加方便快捷的对应用进行开发、治理 于是dubbo就出现了

服务提供者(provider):暴露服务的服务提供方 服务提供者在启动的时候 就会向注册中心注册自己的服务

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

服务消费者(Consumer):服务消费者在启动时 会向注册中心订阅自己所需的服务 服务消费者会从地址列表中 通过负载均衡算法 选一台提供者进行调用 如果调用失败 在选另外一台

监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心

调用关系说明

服务容器负责启动,加载 运行服务提供者

服务提供者在启动时 向注册中心注册自己提供的服务

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

服务消费者在启动时 向注册中心订阅自己所需的服务

服务消费者 从地址提供列表中 基于负载均衡算法 选一台提供者进行调用 如果调用失败 再选另一台进行调用

dubbo初识的更多相关文章

  1. dubbo初识(一)Dubbo架构设计详解

    参见http://shiyanjun.cn/archives/325.html Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合( ...

  2. dubbo 初识(1)

    参考dubbo 中文官方文档:http://dubbo.apache.org/zh-cn/docs/user/preface/architecture.html 分布式架构的发展过程 1.初始小型的项 ...

  3. Dubbo 初识SPI-Version2.7.5

    1简介 SPI 全称为 Service Provider Interface,是一种服务发现机制.SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类.这样可以在 ...

  4. Dubbo+Zookeeper(一)Zookeeper初识

    前面花了一段时间去学习SpringCloud的相关知识,主要是理解微服务的概念并使用SpringCloud的一系列组件实现微服务落地.学习这些组件本身是简单的,跟着操作一遍基本就会了,这也得益于Spr ...

  5. 初识Dubbo 系列之4-Dubbo 依赖

    依赖 必需依赖 JDK1.5+ 理论上Dubbo能够仅仅依赖JDK,不依赖于不论什么三方库执行,仅仅需配置使用JDK相关实现策略. 缺省依赖 通过mvn dependency:tree > de ...

  6. 初识Dubbo+Zookeeprt搭建SOA项目

    由于工作中天天和Dubbo打交道,天天写对外服务,所以有必要自己动手搭建一个Dubbo+zookeeper项目来更更深层次的认识Dubbo 首先了解一下SOA: 英文名称(Service Orient ...

  7. 初识dubbo

    1. 为什么需要 Dubbo(摘自http://dubbo.apache.org/zh-cn/docs/user/quick-start.html) 随着互联网的发展,网站应用的规模不断扩大,常规的垂 ...

  8. Dubbo(1)--初识Dubbo

    1. 为什么需要 Dubbo 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当 ...

  9. 初识Dubbo 系列之6-Dubbo 配置

    配置 Xml配置 配置项说明 具体配置项,请參见:配置參考手冊 (+) API使用说明 假设不想使用Spring配置.而希望通过API的方式进行调用,请參见:API配置 (+) 配置使用说明 想知道怎 ...

随机推荐

  1. 学习 lind layerdiagram 第三弹

  2. typescript step by step interface class

  3. JSON Web Token 是什么?

    免费获得官方JWT手册并深入学习JWT吧! 简介 JSON Web Token(缩写JWT),是一套开放的标准(RFC 7519),它定义了一种紧凑且自URL安全的方式,以JSON对象的方式在各方之间 ...

  4. 前端基础JavaScript

    JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECM ...

  5. SpringBoot学习(二):配置文件

    1.配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固定的: •application.properties •application.yml 配置文件的作用:修改SpringBoo ...

  6. Git 初级使用 windows & Ubuntu

    目的:有一段代码要进行几个人同时维护,但是传来传去不方便,所以希望在github上实现,前提是每台机器都有git 在github 上新建一个项目 然后会看到,大体上就按这执行就可以 在Windows系 ...

  7. OpenDJ入门 | 5分钟快速入门Forgerock DS

    本教程为了让大家快速体验,故不做深入讲解,详细内容请留意后续进阶教程 介绍 OpenDJ是一个目录服务器,它实现了各种轻量级目录访问协议和相关标准,包括完全符合LDAPv3,但也支持目录服务标记语言( ...

  8. 【WPF学习】第三十四章 资源基础

    WPF允许在代码中以及在标记中的各个位置定义资源(和特定的控件.窗口一起定义,或在整个应用程序中定义). 资源具有许多重要的优点,如下所述: 高效.可以通过资源定义对象,并在标记中的多个地方使用.这会 ...

  9. LeetCode19 移除倒数第N个元素

    链接 Remove Nth Node From End of List 难度 Medium 描述 Given a linked list, remove the n -th node from the ...

  10. 技术部突然宣布:JAVA开发人员全部要会接口自动化测试框架

    整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 写在前边 用单元测试Junit完全可以满足日常开发自测,为什么还 ...