首页 > 其他分享 >《RPC实战与核心原理》学习笔记Day1

《RPC实战与核心原理》学习笔记Day1

时间:2023-01-18 08:22:26浏览次数:36  
标签:网络通信 调用 框架 笔记 Day1 RPC 方法 远程

开篇词 | 别老想着怎么用好RPC框架,你得多花时间琢磨原理

为什么要学习RPC?

RPC是解决分布式系统通信问题的一大利器。
RPC对网络通信的整个过程做了完整包装,在搭建分布式系统时,它会使网络通信逻辑的开发变得更加简单,同时也会让网络通信变得更加安全可靠。

如何学习RPC?

学习是一个通过不断解决问题来提升能力的过程,学习RPC可以采取“逐步深入”的方法:

  1. 摆脱现有封装好的框架,了解RPC基本原理以及关键的网络通信过程。
  2. 了解RPC框架中的治理功能以及集群管理功能。
  3. 对RPC活学活用,学习如何提升RPC性能以及在分布式环境下如何定位解决问题。

01 | 核心原理:能否画张图解释下RPC的通信流程

这一讲的标题就是一道很好的面试题呀!

我们平时工作中,可以熟练使用各种框架,但是,我们也需要掌握框架背后的基本原理。

什么是RPC?

RPC的全称是Remote Procedure Call,即远程过程调用。它帮助我们屏蔽网络编程细节,实现调用远程方法就跟调用本地方法一样的体验,我们不需要因为这个方法是远程调用而需要编写很多与业务无关的代码。

RPC框架一般采用TCP作为数据传输协议。

RPC中的网络传输,会涉及到数据的序列化和反序列化。

RPC如何实现调用远程方法像调用本地方法一样的体验?

服务提供者给出业务接口声明,在调用方的程序里面,RPC框架根据调用的服务接口提前生成动态代理实现类,并通过依赖注入等技术注入到了声明了该接口的相关业务逻辑里面。该代理实现类会拦截所有方法调用,在提供的方法处理逻辑里面完成一整套的远程调用,并把远程调用结果返回给调用方,这样调用方在调用远程方法的时候,就获得了像调用本地接口一样的体验。

RPC通信基本流程图

RPC在现代应用架构中的位置是怎样的?

RPC是解决应用间通信的一种方式,无论是在一个大型的分布式应用系统中,还是在中小型系统中,应用架构都会沿着单体->微服务化的方向演进,这样,整个应用会被拆分成多个不同功能的应用或者服务,这些细粒度的应用或者服务可能会部署到多台服务器中,它们之间的通信,就会通过RPC进行,所以,我们可以说,RPC对应的是整个分布式应用系统,就像是“经络”一样的存在。

标签:网络通信,调用,框架,笔记,Day1,RPC,方法,远程
From: https://www.cnblogs.com/wing011203/p/17059101.html

相关文章

  • day17集合
    1.Set集合1.1Set集合概述和特点【应用】不可以存储重复元素没有索引,不能使用普通for循环遍历1.2Set集合的使用【应用】存储字符串并遍历publicclassMySet1{......
  • day18集合
    1.Map集合1.1Map集合概述和特点【理解】Map集合概述interfaceMap<K,V>K:键的类型;V:值的类型Map集合的特点双列集合,一个键对应一个值键不可以重复,值可以重复......
  • day19IO流
    1.File类1.1File类概述和构造方法【应用】File类介绍它是文件和目录路径名的抽象表示文件和目录是可以通过File封装成对象的对于File而言,其封装的并不是一个真正......
  • day14-常用API
    1.API1.1API概述【理解】什么是API​ API(ApplicationProgrammingInterface):应用程序编程接口java中的API​ 指的就是JDK中提供的各种功能的Java类,这些类......
  • day15-常用API
    1.时间日期类1.1Date类(应用)计算机中时间原点1970年1月1日00:00:00时间换算单位1秒=1000毫秒Date类概述Date代表了一个特定的时间,精确到毫秒Date类构......
  • day16集合
    1.Collection集合1.1数组和集合的区别【理解】相同点都是容器,可以存储多个数据不同点数组的长度是不可变的,集合的长度是可变的数组可以存基本数据类型和引......
  • day12-继承
    1.继承1.1继承的实现(掌握)继承的概念继承是面向对象三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新定义,以及追加属性和方法实现继承的格式......
  • day13-接口和内部类
    1.接口1.1信息管理系统集合改进(应用)使用数组容器的弊端容器长度是固定的,不能根据添加功能自动增长没有提供用于赠删改查的方法优化步骤创建新的StudentDa......
  • 【Python】爬虫笔记-开源代理池haipproxy使用
    大规模的数据采集需要用到代理池来突破IP封锁。一般代理池的构建是先爬取网上的免费代理,校验后存到数据库中,再提供给其他程序api。github上有很多现成的代理池能拿来用,在......
  • 学习日记-Day1
    任务列表CPP第1、2章【100%】王爽汇编第1章【100%】程序员的自我修养第1、2章【0%】明天计划CPP第3、4章王爽汇编第2、3章程序员的自我修养第1、2章......