rpc 服务器不可用(rpc服务器不可用)

RPC(Remote Procedure Call)服务,即远程过程调用,在互联网企业的技术架构中占据着举足轻重的地位,尤其是在微服务逐渐成为大中型分布式系统架

RPC(Remote Procedure Call)服务,即远程过程调用,在互联网企业的技术架构中占据着举足轻重的地位,尤其是在微服务逐渐成为大中型分布式系统架构主流的背景下,RPC发挥了重要作用。谷歌开放了gRPC,脸书开放了节俭,Twitter开放了Finagle,百度开放了bRPC,腾讯开放了Tars,阿里开放了Dubbo和HSF,新浪开放了Motan,等等。一线互联网厂商纷纷亮出RPC框架武器,在解决分布式高并发业务问题的同时,向外界展示了自己的技术实力。

rpc 服务器不可用(rpc服务器不可用)插图

互联网正在蓬勃发展。看似复杂的RPC框架解决了哪些业务问题?它的技术含量高在哪里?后端开发人员应该如何深入掌握RPC开发?这些就是这本小册子想要解读的问题。

分布式高并发服务是一个只有专家才能涉足的领域。

虽然大部分后端开发人员在日常开发中或隐或显的使用RPC,但是对于初级开发人员来说,RPC总是有点神秘和遥远。即使是有多年RPC使用经验的程序员,可能仍然不知道RPC背后的原理,也很难掌握,所以在遇到复杂问题时难免会误用。

RPC本身的理论比较复杂,涉及到很多技术栈和工具。如何将理论落实到代码层面,结合实际业务情况,避开各种坑,最终达到性能和工程的极致优化,对后端开发者来说是一个极大的挑战。RPC服务开发原理的认知水平也是区分后端高级开发者和普通开发者的重要参考标准之一。在分布式高并发服务领域,只有专家才能担当重任,在业务工程领域做出创新成果。

程序员的成长水平

作为一个资深面试官,身边很多工程师会经常问我,如何判断一个程序员的技术水平,如何区分他是资深的还是普通的。我相信每个面试官都有自己的一套判断标准和参考答案,但通常最重要的是:

高级程序员在技术选择上往往有更大的自由度。他们不仅会用,还知道为什么要用,会不会用,有没有更好的办法。

初级程序员只会搬砖,别人写我就写,缺乏独立思考的能力。

初级程序员之所以缺乏创新能力,根本原因是因为对技术背后的基本原理没有系统深入的把握,无法进行有效的思考。所谓“浮沙难筑高台”。只有彻底理解了技术原理,工程能力才能得到突飞猛进的提高。

不想造轮子的程序员成不了技术专家。

软件工程领域有一句经典的话“不要重复造轮子”,旨在引导软件工程低成本高效率的发展。不过也是适用的,因为程序员平时学习使用的所有开源框架和编程语言,本质上都是“新轮子”。如果全世界的程序员都完全相信这句名言,今天只有一种编程语言和一个Web框架,这样的世界是不可想象的。从这个角度来说,不断创造“新轮子和好轮子”,是计算机科学的进化史,也是现代软件工程的基石。

虽然大多数新轮子最终不会有很多人使用,但“造轮子”无疑是深入理解技术原理的最佳途径。不会造轮子的学生只能永远停留在技术层面,很难做创造性的工作。

在造轮初期,确实需要避免将自己的轮子直接应用到公司的业务系统中所带来的维护成本。但在高级阶段,造轮子的能力是开发者的核心竞争力,轮子也会成为公司间差异化竞争的重要资本。也可以这么说,如果你想成为一个中大型互联网公司的高级工程师或者技术专家,你必须具备造轮子开发更好工具的实践能力。

这本小册子的一个核心目的是通过实用模块教你建造自己的小轮子-

RPC服务小框架,带领大家体验这种深度学习方法的价值。在此,我引用理论物理大师费曼先生的名言,鼓励各位。

注:理查德·费曼(richard feynman)是美国理论物理学家,量子电动力学创始人之一,纳米技术之父。

为什么会有这本小册子?

这是我在技术写作领域的第一本主题手册。内容不多,却浓缩了过去十年工作学习的精华。十年前,我和大多数人一样,从校园毕业,来到人山人海的帝都。我从基础业务做起,逐渐积累和提高,从一个技术小白逐渐成长为技术专家。在这期间,我也经历了一段职业发展的迷茫期。我曾经对技术缺乏自信,也缺乏过去经验的方向性指导。从初级和中级开发人员过渡到高级开发人员尤其困难。

这也是我写这本小册子的初衷,希望能给和我之前面临同样挑战的朋友们提供一些帮助和指导,尤其是具有一定稀缺性的知识。“授人以鱼,不授人以渔”,“磨刀不误砍柴工”。希望看完这本小册子,不仅能帮助你收获很多构建分布式系统的方法和技巧,还有实用的方法论和思维方式,让你更快更好的编码,快速进入高手行列。

本手册的内容设计和特点

网上有很多解释RPC的文章,但是都比较零散或者不够深入。RPC服务器的实现往往是肤浅的、表面的,基本原理的讲解比内核的本质还要肤浅。

这本小册子的内容不会对网络博文中常见的肤浅内容做过多解释,而会集中于作者从多年的实战经验中挖掘出来的很多知识点,这些知识点比较深入,极其重要,或者大多数人都没有。期望带领读者从深度和广度两方面全面了解RPC服务架构的深层核心设计原理和实现细节,并拓展和介绍一些RPC相关的协议开发知识和行业实战框架作为高级选修参考。

本手册在内容结构上主要分为六大块:

基础:RPC在企业技术中的地位、应用场景、基本原理和交互流程。

简介:RPC通信协议原理,流行协议解构及示例代码分析。

高级章节:RPC客户端的实现要点

实践章节:RPC服务器的各种并发模型的例子

高级章节:分布式RPC服务的实战(代码示例)

学习章节:开源框架gPRC/Thrift原则的介绍与实践

为什么选择Python语言实现?

虽然超大型企业很少使用Python来构建RPC服务,但是大部分都会使用Java或者Golang来开发,因为RPC服务对性能要求极高。但考虑到这本小册子的核心目标是让大家深刻理解RPC背后的原理,Python语言更适合入门,实现代码更短,更有利于阅读和学习,对初学者和中级开发者特别友好。另外,有些服务器并发模型是Python特有的,Java和Golang都没有。选择Python语言可以让内容更加丰富多彩。所以出于教学的目的,最终选择Python作为本小册子的RPC框架实现语言。我相信这不会妨碍真正对分布式高并发领域感兴趣的后端开发人员获得对RPC的理解和实际开发经验。

P.S. Python作为人工智能/大数据时代首选的“全栈”语言,也是值得每个程序员学习和掌握的。

作者简介

互联网分布式高并发技术十年老兵、知乎专栏《Codehole》资深洞主、掘金科技专栏作家钱文(老钱),现任掌阅科技高级后端工程师,曾服务于Renren.com、郭克。精通Java、Python、Golang等计算机语言,开发过游戏和网站,编写过消息推送系统和MySQL中间件,实现过开源的ORM框架、Web框架、RPC框架等。Github地址:github.com/pyloque.

名人推荐

掌阅科技技术总监陈超

RPC服务主要用于满足企业业务系统发展到一定程度后,提高服务调用效率的需求。虽然业内有gRPC、Thrift等成熟的框架可用,但对于有点追求的开发者来说,了解细节和原理比仅仅知道如何使用更重要。这本小册子由浅入深地使用Python语言,结合实例详细讲解了RPC相关的原理和常用模型。推荐给真正想了解和应用RPC服务解决实际问题的朋友!

蒙奇教育技术总监王冬勇

RPC的概念从提出到现在已经有40年了。作为一种成熟的编程模型,RPC已经成为分布式系统的重要组成部分。当企业的IT系统发展到一定规模,系统架构向分布式演进将是大势所趋,RPC服务将是基石。本手册对RPC服务中涉及的网络层、操作系统层和应用层进行了完整而详细的解释。同时使用Python语言作为演示语言,可以快速使用,边学边练。有助于对RPC的原理、体系结构模型和编程模型有更深入的理解。这本小册子推荐给想了解和掌握RPC服务技术的工程师。

适宜人群

掌握Python语法基础,至少有1-2年后端开发经验,想系统深入的掌握RPC服务开发;

不满足于只专注于业务的普通开发者和CRUD专家;

期待高级Python、Java、Golang高级程序员;

对建筑师方向感兴趣的极客;

渴望逃离技术舒适区的车轮制造商;

读者福利

作者决定拿出自己收藏的一部分好书作为福利,以抽奖的形式送给购买小书的用户(国内用户含邮费)。数量有限,还是拼人品吧。

《C底漆加》

动手操作Arduino

白帽子谈论网络安全

对编程的深刻理解——使用Linux汇编语言

图解服务器网络架构

除了以上六本书,《构建Oracle高可用性环境》还有很多其他的好书,这里就不一一列举了。

最后,如果你有兴趣,可以长按二维码享受五折优惠。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/156044.html

发表回复

登录后才能评论