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

猜你喜欢

转载自www.cnblogs.com/lyh233/p/12740761.html