rpc+dubbo基础知识


  • 核心层

    什么是rpc框架

    • rpc(remote procedure call protocol)远程过程调用协议rpc,其目的:将网络通信方面封装好,使得我们能像调用本地服务一样调用远程服务.
    • 这里说一下整个通信流程:
       1. client调用本地调用方式调用服务
       2. client stub接收调用将数据组装准备进行网络传输
       3. client stub找到服务地址,将信息发送到服务端
       4. server stub接受消息进行解码,根据信息调用本地服务
       5. server执行将结果返回给server stub
       6. server stub 将信息打包发送导client stub
       7. client stub接受消息进行解码
       8. client得到最终结果
    
       这里rpc的目的就是将中间2-7过程分装好,使得我们就像调用本地服务一样调用远程机器上的服务
    

    什么是dubbo

    • 一种分布式rpc架构,阿里开发的一种rpc框架
    • github:https://github.com/dubbo
    • 中文文档:https://dubbo.gitbooks.io/dubbo-user-book/content/preface/background.html
    • 文档中很多地方提到分布式和集群这里引用知乎回答:
      1. 分布式:一个业务拆成多个子业务部署到不同的服务器
      2. 集群:同一个业务,部署到多个服务器上
    • 一张很经典的图来看dubbo(来自文档)
      0_1530772950124_dubbo_system.png
       整个流程如下:
       0. 服务放到运行容器当中,由运行容器运行现在大致有三种方法调用服务
           (1)使用dubbo自带到container进行调用
           (2)打包成webapp使用tomcat容器进行部署
           (3)自己创建main方法运行
       1. 服务在注册中心注册,由注册中心统一管理(常用的注册中心:zookeeper)
       2. 用户在注册中心订阅服务
       3. 注册中心将服务地址列表给用户
       4. 用户通过代理类invoke调用远程服务,这里代理invoke方法封装远程通信的细节
       5. 监控中心统计相当于log数据统计
    

    什么是序列化

    • 序列化:将要传输的数据编码成二进制编码方便进行传输
    • 反序列化: 将二进制串解码成数据对象
    • 注意在rpc当中数据传输阶段一定要进行序列化

    什么是soa

    • soa(Service Oriented Architecture)面向服务架构,将应用程序不同功能单元通过服务间良好接口联系起来.
    • 也就是服务层 应用层 前端的三层架构

 

Copyright © 2018 bbs.dian.org.cn All rights reserved.

与 Dian 的连接断开,我们正在尝试重连,请耐心等待