• 1、Dubbo介绍


    一、Dubbo是用于分布式系统的框架所以我们要先了解什么是分布式

    分布式系统是若干独立 计算机的集合,这些计算机对于用户来说就像单个相关系统。

    老式系统(单一应用架构)就是把一个系统,统一放到一个服务器当中然后每一个服务器上放一个系统,如果说要更新代码的话,每一个服务器上的系统都要重新去部署十分的麻烦。

    而分布式系统就是将一个完整的系统拆分成多个不同的服务,然后在将每一个服务单独的放到一个服务器当中。(三个臭皮匠赛过诸葛亮)

    应用架构的发展演变

    ORM

    单一应用架构:一个项目装到一个服务器当中,也可以运行多个服务器每一个服务器当中都装一个项目。
    缺点:1.如果要添加某一个功能的话就要把一个项目重新打包,在分别部署到每一个服务器当中去。2.如果后期项目越来越大的话单台服务器跑一个项目压力会很大的。会不利于维护,开发和程序的性能。

    MVC

    垂直应用架构:将应用切割成几个互不相干的小应用,在将每个小应用独立放到一个服务器上,如果哪一个应用的访问数量多就多加几台服务器。

    RPC

    分布式应用架构(远程过程调用):当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。

    SOA

    流动计算架构:在分布式应用架构的基础上增加了一个调度、治理中心基于访问压力实时管理集群容量、提高集群的利用率,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键 (不浪费计算机资源)

    二、什么是Dubbo

    官网:http://dubbo.apache.org/zh-cn/index.html

    高性能、轻量级、开源的Java RPC分布式服务框架。
    特点

    • 面向接口的远程方法调用
    • 智能容错和负载均衡
    • 服务自动注册和发现

    RPC:远程过程调用。它是一种通过网络远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

    如下图为RPC过程:

    ① 服务消费方(client)调用以本地调用方式调用服务;
    ② client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;
    ③ client stub找到服务地址,并将消息发送到服务端;
    ④ server stub收到消息后进行解码;
    ⑤ server stub根据解码结果调用本地的服务;
    ⑥ 本地服务执行并将结果返回给server stub;
    ⑦ server stub将返回结果打包成消息并发送至消费方;
    ⑧ client stub接收到消息,并进行解码;
    ⑨ 服务消费方得到最终结果。
    总的来说就是通过网络连接进行远程调用

    三、Dubbo的服务治理

    调用关系说明:

      1、服务容器启动
      2、服务提供者向注册中心注册自己提供的服务
      3、服务消费者向注册中心订阅自己所需要的服务
      4、注册中心返回服务提供者的地址列表给消费者,如有改变, 则推送变更数据给消费者
      5、服务消费者,基于软负载均衡算法,选一台提供者进行调用,如果失败,则再选一台调用
      6、服务消费者和服务提供者定时每分钟发送一次统计数据到监控中心

    dubbo属性加载顺序

     JVM参数 > XML > properties

  • 相关阅读:
    艾伟:WinForm控件开发总结(三)认识WinForm控件常用的Attribute 狼人:
    break while(1)
    从“不太差”到“卓越”
    分享一种需求评审的方案
    高德地图 android api 实现自动定位
    Java Class Loader解析
    JAVA IO 设计模式彻底分析
    [latex]PGF 和 tikz中如何旋转图形的示例
    算法笔记之 并查集入门 POJ 1611
    Vector 和 ArrayList 哪一个更好? 为什么?
  • 原文地址:https://www.cnblogs.com/lyh233/p/12740761.html
Copyright © 2020-2023  润新知