精讲rpc框架,这么讲不怕你不明白!

news2024/11/23 1:26:08

谈到rpc框架可能有点陌生感,但是如果换成框架语言Ocaml,大家一定不陌生。

众所周知,ocaml是一款专门做functional programming的一款软件,尤其是它的界面非常简洁,还是专门的server进行线上编写。

rpc框架和ocaml是什么关系呢?

由于ocaml是一门编程语言,所以一般来说ocaml是不能单独存在加入日常生活的使用的。

这时候就需要软件框架的存在了,来将这些不同的语言汇编到一起。

rpc框架就是指这个框架,而不是单独一门结构性编程语言。

下面的图很清晰新的展示了rpc框架的运行轨迹:

主要分为两部分,简要概括出来就是用户和服务器通过网络进行的封装响应。

他最不同的一点就是可以将类似Ocamel的编程语言, 诸如C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk之类的functional programming结合起来。
从而高效的运作。

一般公司,尤其是java用得比较多的公司,会选择使用动态代理的方式来进行rpc框架的构建。

那到底什么是动态代理呢?

说到动态代理就不得不提静态代理:

静态代理可以说是一个java class层面的问题

就是说如果你想implement一个方法,可以不直接调用那个class的方式使用。

或者换句话说,通过间接的方式调用class,这时候就需要代理了。

静态代理的优势就是很直接,但是一旦变得复杂就会容易出bug,这时候就引入了动态代理。

动态代理结合了静态代理的代理模式,不仅可以充当一个中介平台的作用进行代理的功能,而且可以实现这个中介平台的自动化。

换言之,就是在静态代理手动更新平台的基础上变成了自动更新平台,每进来一个class都可以自动实现中介功能的转化。这样,在复杂的程序中不仅可以化简复杂的流程,节省时间,而且,还可以简化代码的复杂程度,实现减少bug的目的。


这一期的rpc精讲就到这里啦!!

如果你还有什么想知道的,想看的,欢迎评论区留言,我们下一期见~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/197463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一篇就看懂的文件操作

文件操作1为什么使用文件我们前面学习结构体时,写了通讯录的程序,当通讯录运行起来的时候,可以给通讯录中增加、删除数据,此时数据是存放在内存中,当程序退出的时候,通讯录中的数据自然就不存在了&#xff…

【Java并发编程】 interrupt 方法详解

【Java并发编程】 interrupt 方法详解 文章目录【Java并发编程】 interrupt 方法详解1.介绍2.打断阻塞状态线程3.打断正常状态的线程4.两阶段终止模式5.打断 park 线程1.介绍 程序中,有些线程的终端需要外部干预,比如有线程存在while(true)循环&#xf…

值得拥有并收藏的 3个安卓/鸿蒙手机解锁软件

手机无论支持哪种操作系统,都占据了每个人口袋里的空间。随着大量移动设备的使用,搜索引擎上也出现了同样数量的查询,其中最常见的是提供安卓/鸿蒙屏幕锁定删除工具。由于安卓是当今最畅销的设备,我们的首要任务是为您提供最好的安…

矿山安全生产监测预警系统 opencv

矿山安全生产监测预警系统通过pythonopencv网络模型计算机视觉技术,对现场画面中人的不安全行为”、“物的不安全状态”、“环境的不安全因素”三方面出发进行实时监测,当监测到现场画面中人员未穿反光衣行为、明火烟雾、未穿安全帽行为、矿车掉道识别、…

【王道数据结构】第三章 | 栈和队列

目录 一、栈stack 基本概念 基本操作 存储结构​​​​​​​ 二、队列Queue 基本概念 队列的基本操作 存储结构 三、栈的应用 栈在括号匹配中的应用 栈在表达式求值中的应用​编辑 栈在递归中的应用 一、栈stack 基本概念 只允许在一端(栈顶top)进行插入或删除操…

大数据看全国疫情生活,北京、武汉已过疫情拐点

自2022年11月末,很多地区新冠病例数据呈现下降趋势,与实际感知有明显差异。2022年12月14日,国家疾控中心发布消息,核酸检测实行“愿检尽检”,不再公布无症状感染者数据。因此,网友们想要了解所在地和老家的…

python能做的100件事04 - python解析PDF

1. python常用pdf库 名称特点PyPDF2已不再维护,继任者PyPDF4 ,但很长时间没有更新了,能读不能写pdfrw能读不能写,但可以兼容ReportLab写ReportLab商业版的开源版本,能写不能读pikepdf能读不能写pdfplumber能读不能写PyMuPDF读写均可,基于GPL…

Vue面试题2

1:vue.js的两个核心是什么? 答:数据驱动和组件化。 2:vue生命周期钩子函数有哪些? 答:总共分为8个阶段创建前/后,载入前/后,更新前/后,销毁前/后 3:第一次页面加载会触发哪几个钩子…

C语言二维数组中:主次对角线求和,上下三角求和,杨辉三角,矩阵转置

p8 有些的结论需要直接记住 目录 矩阵转置 主对角线和次对角线 下三角 和上三角(一般是让求和) 下三角 上三角 杨辉三角 矩阵转置 不是方阵 需要用到第二个二维数组 b[i][j]a[i][j] 是方阵 方法1 借助第二个二维数组,同上 方…

C++基础-3函数

一、函数 1.概述 作用:将一段经常使用的代码封装起来,减少重复代码 而一个较大的程序,一般分为若干个代码块,每个模块实现特定的功能 2.定义 5个内容: ①返回值类型 ②函数名 ③参数列表 ④函…

力扣刷题记录——1287. 有序数组中出现次数超过25%的元素、1299. 将每个元素替换为右侧最大元素 、1413. 逐步求和得到正数的最小值

本专栏主要记录力扣的刷题记录,备战蓝桥杯,供复盘和优化算法使用,也希望给大家带来帮助,博主是算法小白,希望各位大佬不要见笑,今天要分享的是——《力扣刷题记录——1287. 有序数组中出现次数超过25%的元素…

【vector的模拟实现】

目录 1 类的成员变量 2 常用成员函数和迭代器 3 增删查改 3.1 reverse 3.2 push_back 3.3 resize 3.4 insert && erase 4 默认成员函数 4.1 构造函数 4.2 拷贝构造 4.3 赋值运算符重载 4.4 析构函数 前面我们详细介绍了string类的使用,vector的…

关于 JSON 数据格式的完全使用指南

前言 本文将对 JSON 的语法、解析、序列化进行详细的说明,帮助大家掌握 JSON 的使用方式。 如果文中有不对、疑惑或者错字的地方,欢迎在评论区留言指正🌻 一、JSON简介 在 JSON 之前,XML 曾经一度成为互联网上传输数据的事实标…

【论文阅读】【剪枝】Learning Efficient Convolutional Networks through Network Slimming

摘要 深度卷积神经网络(CNN)在许多实际应用中的部署在很大程度上受到其高计算成本的阻碍。在本文中,我们提出了一种新的神经网络学习方案,以同时1)减小模型大小;2) 减少运行时内存占用&…

Kali Linux- 社会工程及压力工具教程

在本章中,我们将了解 Kali Linux 中使用的社会工程工具。 文章目录社会工程Kali Linux - 压力工具SlowhttptestinvitefloodTHC-SSL-DOS总结社会工程 社会工程师工具包 (SET) 是一个专为社会工程设计的开源渗透测试框架。SET具有许多自定义攻…

第九章(12):STL之常用查找算法

文章目录前情回顾常用查找算法findfind_ifadjacent_findbinary_searchcountcount_if下一座石碑🎉welcome🎉 ✒️博主介绍:一名大一的智能制造专业学生,在学习C/C的路上会越走越远,后面不定期更新有关C/C语法&#xff0…

读懂用户之用户调研怎么做?(内附模板教程)

随着互联网的发展,不管是做产品设计、运营,还是市场推广,我们都需要思考的是“用户真正想要的是什么?”。这时候,用户调研的重要性就凸显出来了。 一、什么是用户调研 用户调研,指通过各种方式得到受访者的…

Redis常用指令

3. 常用指令 在这部分中呢,我们家学习两个知识,第一个是key的常用指令,第二个是数据库的常用指令。和前面我们学数据类型做一下区分,前面你学的那些指令呢,都是针对某一个数据类型操作的,现在学的都是对所…

#14环形链表#

环形链表 1题目链接 链接 2思路 slow和fast指向链表的开始 slow一次走一步 fast一次走两步 不带环 fast就会为空 带环 fast就会在环里追上slow 3实现 bool hasCycle(struct ListNode* head) {struct ListNode* slow head, * fast head;while (fast && fast->ne…

微信小程序学习第3天——网络数据请求

一、小程序网络请求限制 1、必须https类型的接口 2、必须将接口的域名添加到信任列表中 二、配置request合法域名 配置步骤:登录微信小程序管理后台 -> 开发 -> 开发设置 -> 服务器域名 -> 修改 request 合法域名 点击修改request合法域名&#xf…