文章目录

    • 什么是分布式系统?
    • 系统架构
    • Dubbo简介
    • RPC的概念
    • dubbo节点角色
    • dubbo节点调用关系
    • Dubbo 安装管理端
    • Dubbo-监控统计中心

什么是分布式系统?

  1. “分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”
  2. 分布式系统(distributed system)是建立在网络之上的软件系统。简单来说:多个(不同职责)人共同来完成一件事!

系统架构

单一应用架构

  1. 当系统开支很小时,只需要一个应用,将所有的功能部署到一起(所有业务都放在一个tomcat里),从而减少部署节点和成本;
  2. 此时,用于简化 增删改查 工作量的数据访问框架 (ORM)是关键,ORM:对象关系映射(Object Relational Mapping)

  1. 单一架构的优点: 小项目开发快 成本低,架构简单 ,易于开发和测试
  2. 单一架构的缺点:大项目模块耦合严重,不易开发,维护,核心业务与边缘业务混合在一块,出现问题互相影响,新增业务困难

垂直应用架构

  1. 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成几个互不相干的几个应用,以提高效率;
  2. 大模块按照mvc分层模式,进行拆分成多个互不相关的小模块,并且每个小模块都有独立的服务器
  3. 此时,用于加速前端页面开发的web框架(MVC)是关键;因为每个小应用都有独立的页面
  4. MVC:模型视图控制器 (Model View Controller)
  5. 垂直应用架构的缺点:模块之间不可能完全没有交集,公用模块无法重复利用。

分布式服务架构

  1. 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的业务,逐渐形成稳健的服务中心,使前端应用能更快速的响应
  2. 此时,用户提高业务复用及整合的分布式服务框架(RPC)远程调用是关键

  1. RPC:独立的应用服务器之间,要依靠RPC(Romote Procedure Call)才能调用

流动计算架构

  1. 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐呈现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率;
  2. 此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键;
  3. SOA:面向服务架构(Service-Oriented Architecture),简单理解就是“服务治理”,例如:公交车站的“调度员”

Dubbo简介

  1. Dubbo是分布式服务框架,是阿里巴巴的开源项目,现交给apache进行维护
  2. Dubbo致力于提高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案

RPC的概念

  1. RPC【Remote Procedure Call】是指远程过程调用,是一种进程间通信方式
  2. RPC基本的通信原理
    1. 在客户端将对象进行序列化
    2. 底层通信框架使用netty(基于tcp协议的socket),将序列化的对象发给服务方提供方
    3. 服务提供方通过socket得到数据文件之后,进行反序列化,获得要操作的对象
    4. 对象数据操作完毕,将新的对象序列化,再通过服务提供方的socket返回给客户端
    5. 客户端获得序列化数据,再反序列化,得到最新的数据对象,至此,完成一次请求

dubbo节点角色

节点角色说明
Provider服务的提供方
Consumer服务的消费方
Registry服务注册与发现的注册中心
Monitor监控服务的统计中心
Container服务运行容器

dubbo节点调用关系

  1. 服务容器负责启动,加载,运行服务提供者;
  2. 服务提供者在启动时,向注册中心注册自己提供的服务;
  3. 服务消费者在启动时,向注册中心订阅自己所需的服务;
  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者;
  5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用;
  6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心;

Dubbo 安装管理端

  1. 修改配置文件 application.properties

  2. 在dubbo-admin目录,使用Maven打包:mvn clean package
  3. 运行target目录中的jar文件:D:\dubbo-admin-master\dubbo-admin\target>java -jar dubbo-admin-0.0.1-SNAPSHOT.jar
  4. 打开浏览器:访问:http://localhost:7001/ 账号密码 root root;

Dubbo-监控统计中心

  1. 修改dubbo-monitor-simple-2.5.3,conf\dubbo.properties

  1. 运行 bin\start.bat,打开Dubbo监控中心


  1. 访问地址 :http://localhost:8080/