层协议|有了HTTP,为什么还要RPC?( 二 )
这个 RPC 框架是基于 HTTP 协议实现的,底层使用到了 Netty 框架的支持。
Thrift是 Facebook 的一个开源项目,主要是一个跨语言的服务开发框架。它有一个代码生成器来对它所定义的 IDL 定义文件自动生成服务代码框架。
用户只要在其之前进行二次开发就行,对于底层的 RPC 通讯等都是透明的。不过这个对于用户来说的话需要学习特定领域语言这个特性,还是有一定成本的。
Dubbo是阿里集团开源的一个极为出名的 RPC 框架,在很多互联网公司和企业应用中广泛使用。协议和序列化框架都可以插拔是及其鲜明的特色。
同样的远程接口是基于 Java Interface,并且依托于 Spring 框架方便开发。可以方便的打包成单一文件,独立进程运行,和现在的微服务概念一致。
HTTP 服务
其实在很久以前,我对于企业开发的模式一直定性为 HTTP 接口开发,也就是我们常说的 RESTful 风格的服务接口。
的确,对于在接口不多、系统与系统交互较少的情况下,解决信息孤岛初期常使用的一种通信手段;优点就是简单、直接、开发方便。
利用现成的 HTTP 协议进行传输。我们记得之前本科实习在公司做后台开发的时候,主要就是进行接口的开发,还要写一大份接口文档,严格地标明输入输出是什么?说清楚每一个接口的请求方法,以及请求参数需要注意的事项等。
比如下面这个例子:
接口可能返回一个 JSON 字符串或者是 XML 文档。然后客户端再去处理这个返回的信息,从而可以比较快速地进行开发。
但是对于大型企业来说,内部子系统较多、接口非常多的情况下,RPC 框架的好处就显示出来了,首先就是长链接,不必每次通信都要像 HTTP 一样去 3 次握手什么的,减少了网络开销。
其次就是 RPC 框架一般都有注册中心,有丰富的监控管理;发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作。
总结
RPC 服务和 HTTP 服务还是存在很多的不同点的,一般来说,RPC 服务主要是针对大型企业的,而 HTTP 服务主要是针对小企业的,因为 RPC 效率更高,而 HTTP 服务开发迭代会更快。
总之,选用什么样的框架不是按照市场上流行什么而决定的,而是要对整个项目进行完整地评估,从而在仔细比较两种开发框架对于整个项目的影响,最后再决定什么才是最适合这个项目的。
一定不要为了使用 RPC 而每个项目都用 RPC,而是要因地制宜,具体情况具体分析。
作者:浮生忆梦
编辑:陶家龙
出处:https://tinyurl.com/y4o875zm
- 协议|喜讯丨热烈祝贺众科联与顺笑拍、喜到家签订合作协议
- 中国|中国软件国际与深圳市政府达成战略合作协议 助力打造“创新之都“
- 数字|数字文化产业融合有了新指南
- 系列|千元价位最值得入手的机型:realme真我Q2系列都有了
- 北斗|电力巡检有了“千里眼”
- 运输|埃塞俄比亚航空“菜鸟号”首航,温控药品出口有了“空中班车”
- 美通社|Semiconlight与华灿光电签署倒装芯片专利授权协议 | 倒装
- 前辈|八层板PCB展示,电脑主板PCB美图展示
- 芯片|韩国Semiconlight与华灿光电签署倒装芯片专利授权协议
- ColorOS、MIUI宿命对决:差距不只是底层,还有这方面