我以前一直用的 restful,觉得也很不错,它能胜任我所接触到的需求。目前 python 也有很多成熟 restful 的框架。 后来,面试的时候,偶尔听到“你对远程调用熟悉吗?”。
后来, 换了一份工作,直接领导也让我去了解下远程调用。(目前项目中还没用到,为以后打算。)
我想了解下这两个种技术的历史,到底谁是古老技术,谁是现代流行?
确实见目前用的多的也是 restful,如果你认为远程调用, 也用的多, 能举下例子子吗?
也许它们的适用场景并不完全相同或重叠,你分别举下例子也行。
1
wwwwzf 2019-05-03 18:26:21 +08:00
云计算时代,你说流行不流行?
没有什么合理不合理,适用就合理 。 |
2
xlui 2019-05-03 18:32:13 +08:00 via iPhone
rpc 非常流行
|
3
mattx 2019-05-03 18:41:07 +08:00
很流行吧, 现在云时代都流行分布式
|
4
lincanbin 2019-05-03 18:50:18 +08:00 via Android 1
http 也是一种 rpc,只不过常用的 HTTP 1.1 浪费带宽、连接之类的资源。
有高并发场景很容易成为瓶颈,没高并发场景就无所谓了。 |
5
lihongjie0209 2019-05-03 19:00:55 +08:00
rpc 有代码生成, 写的是代码
http 是拼接字符串 至于其他的框架级别的特性要具体而言了 |
6
mikicomo 2019-05-03 19:07:22 +08:00
内部项目间的互相调用,用 rpc 还是蛮爽的
|
8
haohello 2019-05-03 19:22:23 +08:00
跨语言调用不都是在用 rpc 的吗? 这方面数据格式传输是个大问题,大部分瓶颈就是在数据格式转换上, 大部分数据都是在内存中从一个格式转换为另一个格式然后传递给另一进程,又得经过转换的过程。
你可以看看 Facebook Thrift, 或是 Apache Thrift, 还有就是 Protocol Buffer,FlatBuffers,Cap'n Proto 等等 |
9
brickyang 2019-05-03 19:39:13 +08:00 via iPhone
最近正在把 RESTful 微服务用 gRPC 重构,不用费劲吧啦设计接口和写一堆 controller,很爽。
内部服务间用 RPC 比 RESTful 更环保。 |
10
kevinlm 2019-05-03 19:45:08 +08:00
早期的 EJB 项目不就是远程调用嘛
|
11
Pythondr 2019-05-03 19:48:53 +08:00 via Android
微服务时代就是搞 rpc
|
12
autogen 2019-05-04 00:20:32 +08:00
rpc 是基础啊。。。后台服务之间内部调用全都用 rpc 的
restful 只有几个特定的场景使用(openapi,客户端到服务端) - |
13
cyan 2019-05-04 01:54:15 +08:00
restful 也只是一种路由设计风格而已
两个不是一个层面的概念 比如某 dubbo 作为一个 rpc 框架支持 restful 风格的服务接口.. |
15
lincanbin 2019-05-04 03:52:40 +08:00 via Android
另外纠正一下:
http 是 rpc 的一种实现,restful 在这个场景应该是指 http 协议里通信的一种设计规范…… |
16
iwtbauh 2019-05-04 11:55:15 +08:00 via Android
|
19
zzfly256 2019-05-04 22:11:48 +08:00
流行倒是真的非常流行,主要是运用在微服务方面。不过能不能用得上,要得看公司业务吧,如果公司业务并发量不够,玩远程调用反而浪费了资源
|
20
usingnamespace 2019-05-05 00:47:34 +08:00 via iPhone
@brickyang gRpc 很爽的
|
21
usingnamespace 2019-05-05 00:48:47 +08:00 via iPhone
@a523 得写 IDL
|
22
usingnamespace 2019-05-05 00:50:01 +08:00 via iPhone
微服务的时代 没有 RPC 什么都不存在 别说 http 这种字符串拼接了
|
23
usingnamespace 2019-05-05 00:50:56 +08:00 via iPhone
楼主有点落在时代后面了。。。(逃)
|
24
wind3110991 2019-05-05 09:36:50 +08:00
grpc 算是 rpc 实现中的典范了,在微服务的场景下,用 grpc+pb 的传输效率比 http+json 高了很多。http 说到底也是 rpc 的一种实现,基于这个协议来用 xml、json 等等来简单交换数据;
楼主可以多了解一下,个人觉得其实当前还在用 python 来做主业务逻辑开发的公司,真的相对有点落伍了,怎么都得来个 gin ( golang )或者 springcloud ( java )了; |