V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
a523
V2EX  ›  Python

现在远程调用还流行吗?

  •  1
     
  •   a523 · 2019-05-03 17:29:42 +08:00 · 4951 次点击
    这是一个创建于 2035 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我以前一直用的 restful,觉得也很不错,它能胜任我所接触到的需求。目前 python 也有很多成熟 restful 的框架。 后来,面试的时候,偶尔听到“你对远程调用熟悉吗?”。

    后来, 换了一份工作,直接领导也让我去了解下远程调用。(目前项目中还没用到,为以后打算。)

    我想了解下这两个种技术的历史,到底谁是古老技术,谁是现代流行?

    确实见目前用的多的也是 restful,如果你认为远程调用, 也用的多, 能举下例子子吗?

    也许它们的适用场景并不完全相同或重叠,你分别举下例子也行。

    24 条回复    2019-05-05 09:36:50 +08:00
    wwwwzf
        1
    wwwwzf  
       2019-05-03 18:26:21 +08:00
    云计算时代,你说流行不流行?
    没有什么合理不合理,适用就合理 。
    xlui
        2
    xlui  
       2019-05-03 18:32:13 +08:00 via iPhone
    rpc 非常流行
    mattx
        3
    mattx  
       2019-05-03 18:41:07 +08:00
    很流行吧, 现在云时代都流行分布式
    lincanbin
        4
    lincanbin  
       2019-05-03 18:50:18 +08:00 via Android   ❤️ 1
    http 也是一种 rpc,只不过常用的 HTTP 1.1 浪费带宽、连接之类的资源。

    有高并发场景很容易成为瓶颈,没高并发场景就无所谓了。
    lihongjie0209
        5
    lihongjie0209  
       2019-05-03 19:00:55 +08:00
    rpc 有代码生成, 写的是代码

    http 是拼接字符串


    至于其他的框架级别的特性要具体而言了
    mikicomo
        6
    mikicomo  
       2019-05-03 19:07:22 +08:00
    内部项目间的互相调用,用 rpc 还是蛮爽的
    a523
        7
    a523  
    OP
       2019-05-03 19:13:30 +08:00
    @lincanbin S3 就是 restful, 高并发没问题。
    haohello
        8
    haohello  
       2019-05-03 19:22:23 +08:00
    跨语言调用不都是在用 rpc 的吗? 这方面数据格式传输是个大问题,大部分瓶颈就是在数据格式转换上, 大部分数据都是在内存中从一个格式转换为另一个格式然后传递给另一进程,又得经过转换的过程。

    你可以看看 Facebook Thrift, 或是 Apache Thrift, 还有就是 Protocol Buffer,FlatBuffers,Cap'n Proto 等等
    brickyang
        9
    brickyang  
       2019-05-03 19:39:13 +08:00 via iPhone
    最近正在把 RESTful 微服务用 gRPC 重构,不用费劲吧啦设计接口和写一堆 controller,很爽。
    内部服务间用 RPC 比 RESTful 更环保。
    kevinlm
        10
    kevinlm  
       2019-05-03 19:45:08 +08:00
    早期的 EJB 项目不就是远程调用嘛
    Pythondr
        11
    Pythondr  
       2019-05-03 19:48:53 +08:00 via Android
    微服务时代就是搞 rpc
    autogen
        12
    autogen  
       2019-05-04 00:20:32 +08:00
    rpc 是基础啊。。。后台服务之间内部调用全都用 rpc 的

    restful 只有几个特定的场景使用(openapi,客户端到服务端)


    -
    cyan
        13
    cyan  
       2019-05-04 01:54:15 +08:00
    restful 也只是一种路由设计风格而已
    两个不是一个层面的概念
    比如某 dubbo 作为一个 rpc 框架支持 restful 风格的服务接口..
    lincanbin
        14
    lincanbin  
       2019-05-04 03:49:45 +08:00 via Android
    @a523 能堆硬件肯定不会有问题。
    lincanbin
        15
    lincanbin  
       2019-05-04 03:52:40 +08:00 via Android
    另外纠正一下:
    http 是 rpc 的一种实现,restful 在这个场景应该是指 http 协议里通信的一种设计规范……
    iwtbauh
        16
    iwtbauh  
       2019-05-04 11:55:15 +08:00 via Android
    远程调用?是远程过程调用吧。


    @lincanbin #15

    “ http 是 rpc 的一种实现”改成“可以用 http 来实现 rpc"不是更好。因为 http 不是“ rpc 实现”,甚至不是“实现”

    @haohello #8

    当然不都是用 rpc 了。只是 rpc 用的比较多而已。
    a523
        17
    a523  
    OP
       2019-05-04 16:07:15 +08:00
    @iwtbauh 是的, 就是说的远程过程调用,rpc
    a523
        18
    a523  
    OP
       2019-05-04 16:08:10 +08:00
    @brickyang 不用写接口?那就得直接看代码咯。。。
    zzfly256
        19
    zzfly256  
       2019-05-04 22:11:48 +08:00
    流行倒是真的非常流行,主要是运用在微服务方面。不过能不能用得上,要得看公司业务吧,如果公司业务并发量不够,玩远程调用反而浪费了资源
    usingnamespace
        20
    usingnamespace  
       2019-05-05 00:47:34 +08:00 via iPhone
    @brickyang gRpc 很爽的
    usingnamespace
        21
    usingnamespace  
       2019-05-05 00:48:47 +08:00 via iPhone
    @a523 得写 IDL
    usingnamespace
        22
    usingnamespace  
       2019-05-05 00:50:01 +08:00 via iPhone
    微服务的时代 没有 RPC 什么都不存在 别说 http 这种字符串拼接了
    usingnamespace
        23
    usingnamespace  
       2019-05-05 00:50:56 +08:00 via iPhone
    楼主有点落在时代后面了。。。(逃)
    wind3110991
        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 )了;
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3209 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:10 · PVG 21:10 · LAX 05:10 · JFK 08:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.