什么是分布式

  • SOA面向服务的架构。
  • 把系统拆分成不同服务,然后放在不同服务器部署减轻压力,提高性能和并发。

    什么是Dubbo

  • 分布式服务框架,轻量级java RPC框架,提供三大核心能力:面向接口的远程方法调用、只能容错和负载均衡、以及服务自动注册和发现。

    Dubbo架构

    框架--Dubbo - 图1

    调用关系

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

    什么是RPC

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

    为什么用Dubbo

  1. 负载均衡——同一个服务部署在不同的机器时该调用那一台机器上的服务
  2. 服务调用链路生成——服务之间互相是如何调用的
  3. 服务访问压力以及时长统计——当前系统的压力主要在哪里,如何来扩容和优化
  4. 服务降级——某个服务挂掉之后调用备用服务