从分布式到微服务,互联网公司更注重高性能和高可用,在这里,我想写写关于RPC的那点事儿。如果一个开发者不知道啥是RPC,都不好意思说自己所在的公司是互联网属性的公司。

模型

建筑师在动工一座大厦的时候都要有沙盘,也算是模型,构建它的美学和建筑原理,RPC也一样,RPC概念出现的很早,后来在 Bruce Jay Nelson 的论文里,定义了RPC的调用标准。后面所有RPC框架,都是按照这个标准模式来的。所谓RPC(Remote Procedure Call)远程过程调用。

操作远程和远程调用的思路是一样的,就像操作本地一样。所以NFS协议就是基于RPC实现的。当然无论是什么RPC,底层都是Socket编程。

博主梦话:用远程RPC也可以实现,用URL的形式也可以实现,那么用RPC有什么好处呢?RPC直接走Socket接口,加快了服务的传输速度,URL需要经过数据链路层、网络层、传输层 一步一步走到应用层,在性能上应该有很大的差距。这些仅代表博主不成熟的观点。

SOAP

SOAP了,全称简单对象访问协议(Simple Object Access Protocol)。它使用XML编写简单的请求和回复消息,并用HTTP协议进行传输。

SOAP将请求和回复放在一个信封里面,就像传递一个邮件一样。信封里面的信分抬头和正文。

POST /purchaseOrder HTTP/1.1
Host: www.zhuangbfan.com
Content-Type: application/xml; charset=utf-8
Content-Length: nnn<?xml version="1.0"?>
<order>
<date>2019-07-31</date>
<className>RPC学习笔记</className>
<Author>stark</Author>
<price>99</price>
</order>

而且XML的格式也可以改成另外一种简单的文本化的对象表示格式JSON。JSON更好的兼容Js和PHP等语言,编程风格更被大家接收和喜欢。

{"head": {"status": 500,"hasMore": false},"body": "网络异常,请稍候重试"
}

经常写Web应用的应该已经发现,这就是RESTful格式的API的样子。

RESTful

在前公司工作的时候主要的工作职责是和客户端写交互的接口,每次迭代版本的流程是需求平时、技术评审、更新wiki和编写代码…但是每次版本迭代的时候产生了难度,所以就使用了RESTful Api。

RESTful:全称Representational State Transfer,更多可以说的是一种架构风格,加上json的方便快捷,越来越成为互联网的Api的标准。

特点:

  • API必须有版本的概念,v1,v2,v3
  • 使用Token令牌来做用户身份的校验与权限分级,而不是Cookie。
  • url中大小写不敏感,不要出现大写字母
  • 使用 - 而不是使用 _ 做URL路径中字符串连接。
  • 有一份漂亮的文档~(很重要)

总结

微服务的诞生于多容器之间的链接,RPC的方便快捷了远程服务,让程序像调用自己的本地服务一样快捷、简单、方便,可跨语言、只要定义相同的协议就好了。如果后面有新的认识,在更新文章。

谢谢你的阅读。
En。

RPC : 堂堂程序员,应该懂点RPC相关推荐

  1. PHP笔记——java程序员看懂PHP程序

    PHP笔记--java程序员看懂PHP程序 php是一种服务器端脚本语言,类型松散的语言. <?php   ?>       xml风格 <script language=" ...

  2. java前台界面设计_前端程序员要懂的 UI 设计知识

    前端程序员要懂的 UI 设计知识 疯狂的技术宅 前端先锋 翻译:疯狂的技术宅 作者:Per Harald Borgen 来源:freecodecamp 正文共:1401 字 预计阅读时间:5分钟 作为 ...

  3. 为大家整理一波程序员才懂的扎心图片!看不懂别说自己是程序员!

    程序员真的是世界上一种独特的生物男人.女人.程序员 今天为大家整理了一波程序员才懂的扎心图片! 工作前vs工作后 自己眼中vs别人眼中 期望vs现实 有人问过,"HTML CSS 和 Jav ...

  4. 【程序员才懂的梗】全程高能 爆笑硬核 你中了几个 | 程序员的日常 搞笑瞬间

    只有程序员才懂的梗,搞笑硬核,非战斗人员很难get到点上. 内容过于真实,看看你中了几个. 友情提示:上班摸鱼,注意音量. 程序员才懂的梗 还有更多程序员梗图memes,博君一笑. 这是不是你封装的接 ...

  5. 程序员才懂的58张图片,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

    导读:春节快到了!你的假期都安排上了吗?今天我们就用这些程序员才懂的幽默,给你拜个早年吧! 来源:程序员最幽默(ID:humor1024)编译配字 01 Java VS C++ 02 功能先上了再说 ...

  6. 盘点2018程序员才懂的100个段子/搞笑图(上篇)

    本来打算发100道算法题送给大家庆祝元旦,后来想了想对大家太残忍了.所以就换成了100个程序员才懂的段子和搞笑图:因为篇幅过长就分成了两篇,今天是上篇,明天发下篇. 段子系列(上篇/25个) 0. 顺 ...

  7. 做程序员必须懂英语吗?_您必须懂英语才能成为程序员吗?

    做程序员必须懂英语吗? An interesting comment thread broke out in a recent post on Using Crowdsourcing for Expa ...

  8. 60 个程序员才懂的梗!太形象了!

    说到程序员,在外界眼里,他们是掌控代码的大神,他们是改变世界的王者.其实程序员并没有大家想的那么光鲜,活多钱少压力大:导致众猿(媛)在自黑.自嘲的路上越走越远:一起来看一下那些只有程序员才懂的梗... ...

  9. 程序员年入百万指南(二)之为什么程序员应该懂点销售

    本文为[程序员年入百万指南]系列之VOL.2 为什么程序员应该懂点销售 作者:胡嵩 提起销售,各位同学是不是头脑中立刻浮现出四个大字:                                 ...

最新文章

  1. 干式双离合和湿式双离合的优缺点
  2. Applese 涂颜色
  3. tp3.2 不能提交到action方法_什么是死锁,如何避免死锁(4种方法)
  4. 微软Project Springfield团队的F#使用心得
  5. TypeScript函数
  6. 树莓派4B Raspbian-buster 更换源
  7. SCCM安装所需组件图
  8. clone oracle ebs
  9. Maven web项目的项目如何创建
  10. geotools绘制地图导出图片
  11. 魔百盒九联UNT402H,(芒果、南传、百视通)等通刷刷机固件
  12. Java实现第九届蓝桥杯分数
  13. html中header怎么设置,怎么在html中设置header
  14. 计算机技术复试新浪微博,四川大学计算机学院复试经验交流
  15. AT89S52与AT89c51的区别
  16. Chevereto图床搭建 | 利用云服务器搭建免费图床完整教程
  17. keras-文本图片文字识别
  18. 频谱分析仪中的RBW 和 VBW
  19. 理论+实操:K8S的pod健康检查——live、ready、startup
  20. SQLServer中的N是什么意思?

热门文章

  1. DirectX 因素:音频处理对象简介
  2. elementui-aside和main实现不了垂直排列
  3. Element的Notification通知自定义样式手动关闭直接渲染带html格式的字符串
  4. 达芬奇五年沉浮—嵌入式处理器架构之争决战2012
  5. MySQL插入数据的三种方法
  6. shel脚本基础系列(三)for-while循环
  7. 线性回归之梯度下降法原理介绍
  8. React-Native 中如何让TextInput获得焦点?
  9. PHP无限极分类(递归)
  10. linux访问vdma的数据,12_数据通路笔记一_DDR_VDMA_VGA