V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
twogoods
V2EX  ›  程序员

你们公司一般都用哪个 RPC 框架还是自己的轮子?

  •  
  •   twogoods · 2016-12-01 16:13:10 +08:00 · 6808 次点击
    这是一个创建于 2917 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2016-12-01 16:47:05 +08:00
    有人说光抛问题不说场景,我知错,然后我真的只是想了解你们用的啥挑一个研究下, rpc 以前没碰过.....
    26 条回复    2016-12-03 20:40:21 +08:00
    update
        1
    update  
       2016-12-01 16:21:22 +08:00
    yar
    gemini
        2
    gemini  
       2016-12-01 16:27:44 +08:00
    都有吧。公司内部都有好多框架,开源的也很多,主要还是看业务场景吧。

    //楼主光抛问题不分享自己的场景,噻~~
    crytis
        3
    crytis  
       2016-12-01 16:45:09 +08:00 via iPhone
    改装的 dubbo
    jlak0106
        4
    jlak0106  
       2016-12-01 16:50:59 +08:00
    dubbo
    VeryEase
        5
    VeryEase  
       2016-12-01 16:51:50 +08:00
    我来看看有多少人用 grpc 的......
    0915240
        6
    0915240  
       2016-12-01 16:53:04 +08:00
    @VeryEase 上次弄了下 没搞好。
    murmur
        7
    murmur  
       2016-12-01 16:56:42 +08:00
    xmlrpc
    9hills
        8
    9hills  
       2016-12-01 17:00:28 +08:00
    某个模块, thrift ,大约几万 qps
    orderc
        9
    orderc  
       2016-12-01 19:13:06 +08:00
    php-yar
    Tom008
        10
    Tom008  
       2016-12-01 20:27:17 +08:00 via iPhone
    thrift
    sagaxu
        11
    sagaxu  
       2016-12-01 21:30:35 +08:00 via Android
    rpc 作为经典的 KPI 项目,而且难度小容易实现,轮子必须非常多
    zuoxiaomo
        12
    zuoxiaomo  
       2016-12-01 21:44:07 +08:00
    自己早的轮子呀
    zuoxiaomo
        13
    zuoxiaomo  
       2016-12-01 21:45:14 +08:00
    @Tom008 thrift 还是不错的,之前公司的一个产品用的就是这套
    gouchaoer
        14
    gouchaoer  
       2016-12-01 21:49:07 +08:00 via Android
    用 yar 的我问一下,我一直不明白 rpc 调用对 http api 的优势在哪里。。。。
    你们觉得 yar 的那个 php-cli 开着一个命令行的 php server 靠谱么,既然 yar 也是用的 http ,那速度和我直接正常的写个 http api 没有区别啊,而且 http api 还更成熟
    crossoverJie
        15
    crossoverJie  
       2016-12-01 21:55:23 +08:00
    用 dubbo 的还是挺多的 我们用 dubbo 和 thrift
    sagaxu
        16
    sagaxu  
       2016-12-02 06:51:34 +08:00 via Android
    @gouchaoer cli 起的服务,相比 fpm 这种更容易实现 php 层面的持久化,比如说你框架有 200 行 php 的初始化逻辑, fpm 方式下每个 http 请求都要初始化一下, cli 起的只要初始化一次。未来的 PHP 或许会渐渐淘汰 fpm 这种方式,每个请求都简单粗暴重来一次已经越来越跟不上时代了。
    orderc
        17
    orderc  
       2016-12-02 09:12:52 +08:00
    @gouchaoer 场景不同, yar 用于内部系统服务化,远程类直接当做本地类使用,调用方便。 http api 提供给外部调用,通常需要认证。
    gouchaoer
        18
    gouchaoer  
       2016-12-02 09:31:21 +08:00
    @sagaxu
    @orderc
    内部系统那也撑不住大流量啊,你想那只是一个单进程 php-cli ,而 php-cli 长期驻内存稳定性不好说。

    而且 php-cli 的 socket 做的 server , workerman 、 swooole 之类的,性能并不一定比 php-fpm 的强:

    http://rango.swoole.com/archives/254

    所以说就算本地内部使用,你没 log ,没并发,没负载均衡,没阻塞,没失败从启,那用 yar 之类的 rpc 我也没看到啥优势。。。无非就是函数调用更接近语言本身,还有就是传输的内容压缩过,但是这 2 点根本不是痛点,所以依然搞不懂 rpc 的优势在哪里
    orderc
        19
    orderc  
       2016-12-02 09:46:50 +08:00
    @gouchaoer yar 是基于 curl ,写的程序和普通 PHP 程序一样,由 php-fpm 执行,不需要 php-cli ,和 workerman 、 swoole 等需长驻内存的不一样。
    sagaxu
        20
    sagaxu  
       2016-12-02 10:16:58 +08:00
    @gouchaoer yaf 是 C 写的,框架本身是常驻内存的, swoole 框架只有底层核心部分是 C 写的,上层还有 php ,所以两者性能上面差距不大。而 yii 是纯 php 框架里最快的之一,它却比那两个慢好几倍,这正是常驻内存的价值体现。

    除了框架自身开销,我们还会有一堆业务上的初始化逻辑,这是 fpm 的梦靥,除非你业务逻辑初始化也用 C 做成扩展。

    cli 也不一定是单进程,比如 swoole 可以开多进程,充分利用多核性能。 qps 过万的时候,甚至连同机房 redis 的访问都嫌慢。

    至于 cli 常驻靠不靠谱,我觉得可能不如 python/Java 这样经过十年以上检验的可靠,但是 php 不也一直在改善么?
    gouchaoer
        21
    gouchaoer  
       2016-12-02 10:27:15 +08:00
    @sagaxu 好吧,我一直以为 yaf 是运行在 php-fpm 内部的,那 yaf 本质上是和 swoole 和 yar 一样是 php-cli 的应用了……我小厂还是老实 yii 吧,流量达不到那么大,驾驭不了
    lane3000
        22
    lane3000  
       2016-12-02 11:33:32 +08:00
    内部服务 dubbo ,对客户端 grpc
    z5864703
        23
    z5864703  
       2016-12-02 15:37:54 +08:00
    Mark 学习
    janxin
        24
    janxin  
       2016-12-02 19:30:44 +08:00 via iPhone
    grpc
    arden
        25
    arden  
       2016-12-03 10:17:05 +08:00
    hprose 怎么没人提呢
    wsbnd9
        26
    wsbnd9  
       2016-12-03 20:40:21 +08:00
    thrift 或者 google 的 grpc
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4468 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 01:03 · PVG 09:03 · LAX 17:03 · JFK 20:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.