zoukankan      html  css  js  c++  java
  • RPC通信原理概述

    RPC通信原理概述

    1、RPC概述

    1、什么是RPC

    RPC(Remote Procedure Call Protocol)远程过程调用协议。它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。说白了就是客户端在不知道调用细节的情况下,调用存在于远程计算上的某个过程或函数,就像调用本地应用程序中的一样。
    

    2、传统服务调用

    1、获取IP、端口、接口名:
    2、设置请求行、请求头、请求体等信息
    3、编码处理
    .....等等等等
    以上这些只是一些基本的功能
    

    3、作用及优势

    作用:
    1、使服务解耦
    2、分布式设计
    3、部署灵活
    4、容易扩展
    
    优点:
    1、一般使用长链接,不必每次通信都要3次握手,减少网络开销
    2、一般都有注册中心,有丰富的监控管理
    3、发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作
    4、协议私密,安全性较高
    5、rpc 能做到协议更简单内容更小,效率更高
    6、rpc是面向服务的更高级的抽象,支持服务注册发现,负载均衡,超时重试,熔断降级等高级特性
    

    2、RPC架构分析

    ​ RPC的定义:远程过程调用,调用远程就像调用本地某个过程或函数。通过这一句我们是不是感受不到IP等地址信息的存在了,请求头是不是也应该存在了,编码什么的也不复存在了吧,网络传输不应该让我们开发者感受到了吧.......中间的所有跟调用过程相关的是不是都是RPC内部应该帮我们做的,那么接下来我们看一下RPC中具体应该有哪些模块,每个模块又有什么存在的意义

    1、都有哪些组件(模块)

    1、调用模块:通过该模块对数据进行封装、对请求进行负载、超时判断、熔断和限流等等
    2、序列化	: 通过该模块对数据进行序列化,转成可通过网络传输的格式,并在没收到数据后反序列化成可读的格式
    3、协议编码:这里的编码是对数据的编码和解码
    4、网络传输:两个服务之间信息的传输
    5、服务发现:从注册中心订阅服务
    6、服务注册:将服务提供者提供的服务注册到注册中心供消费者使用
    7、注册中心:在高可用的生产环境中,服务一般都以集群方式提供服务,集群里面的IP等重要参数信息可能随时会发生变化,节点也可能会动态扩缩							容,客户端需要能够及时感知服务端的变化,获取集群最新服务节点的连接信息,而这些变化要求是要对调用方应用无感知的
    

    3、RPC实现要点

    其实根据上面的讲述,RPC框架中会使用到的技术我们已经有了一个大概的了解,除了上面哪些还有什么是我们没有考虑到的呢?

    1、序列化
    2、动态代理
    3、网络通信
    4、熔断限流
    5、超时重试
    6、路由负载

  • 相关阅读:
    Java Math 取整的方式
    Java final 关键词修饰类、方法、变量
    Android Activity 开发常用技巧整理
    Java override 和 overload 的区别
    Android TextView 常用技巧
    Android Adb 常用命令
    Android 实现应用升级方案(暨第三方自动升级服务无法使用后的解决方案)
    Git 常用命令
    Android 常见Crash Log汇总
    Java Annotation 总结
  • 原文地址:https://www.cnblogs.com/SunArmy/p/14846242.html
Copyright © 2011-2022 走看看