zoukankan      html  css  js  c++  java
  • 深入理解Dubbo系列(一)-初始Dubbo

    初始Dubbo

    1.   RPC原理
    2.        Dubbo初识

    1、RPC原理

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

      

    • 服务消费方(client)调用以本地调用方式调用服务;
    • client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;
    • client stub找到服务地址,并将消息发送到服务端;
    • server stub收到消息后进行解码;
    • server stub根据解码结果调用本地的服务;
    • 本地服务执行并将结果返回给server stub;
    • server stub将返回结果打包成消息并发送至消费方;
    • client stub接收到消息,并进行解码;
    • 服务消费方得到最终结果。

      下面再贴一个网上的时序图:

      

    2、Dubbo初识 

      Dubbo 的诞生和 SOA 分布式架构的流行有着莫大的关系。SOA 面向服务的架构(Service Oriented Architecture),也就是把工程按照业务逻辑拆分成服务层、表现层两个工程。服务层中包含业务逻辑,只需要对外提供服务即可。表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。SOA架构中有两个主要角色:服务提供者(Provider)和服务使用者(Consumer)。
      
      

       Dubbo 提供的下面四点特性:

    1. 负载均衡——同一个服务部署在不同的机器时该调用那一台机器上的服务。
    2. 服务调用链路生成——随着系统的发展,服务越来越多,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。Dubbo 可以为我们解决服务之间互相是如何调用的。
    3. 服务访问压力以及时长统计、资源调度和治理——基于访问压力实时管理集群容量,提高集群利用率。
    4. 服务降级——某个服务挂掉之后调用备用服务。

    另外,Dubbo 除了能够应用在分布式系统中,也可以应用在现在比较火的微服务系统中。不过,由于 Spring Cloud 在微服务中应用更加广泛,所以,我觉得一般我们提 Dubbo 的话,大部分是分布式系统的情况。

  • 相关阅读:
    Qt中QString,int,char,QByteArray之间相互转换
    Qt中的多线程编程
    在Qt中使用sleep(包含为win and *nix下sleep函数的实现及用法)
    Qt Creator 快捷键
    基于FFmpeg和Qt的播放器 QtAV库
    Ubuntu下APACHE HTTPS安装和配置
    很受欢迎的Linux笔记(短小精悍)
    QT基本使用
    FLV封装格式及分析器工具
    AVPicture、AVFrame和AVPacket
  • 原文地址:https://www.cnblogs.com/tuanz/p/15133463.html
Copyright © 2011-2022 走看看