文章目录

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


什么是分布式系统?

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

系统架构

单一应用架构

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

分布式垂直应用架构 分布式架构dynamo_分布式垂直应用架构

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

垂直应用架构

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

分布式服务架构

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

分布式垂直应用架构 分布式架构dynamo_dubbo_02

  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节点角色

分布式垂直应用架构 分布式架构dynamo_RPC_03

节点

角色说明

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;

分布式垂直应用架构 分布式架构dynamo_RPC_04

Dubbo-监控统计中心

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

分布式垂直应用架构 分布式架构dynamo_RPC_05

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

分布式垂直应用架构 分布式架构dynamo_java_06


分布式垂直应用架构 分布式架构dynamo_RPC_07

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