不知道大家有没有研究过 GRPC 框架,我想知道里面建立 socket 是怎么建立的,我想修改这部分代码,不知道有没有大牛能指导以下? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Kellerman
V2EX    问与答

不知道大家有没有研究过 GRPC 框架,我想知道里面建立 socket 是怎么建立的,我想修改这部分代码,不知道有没有大牛能指导以下?

  •  
  •   Kellerma 2018-09-06 09:08:28 +08:00 3807 次点击
    这是一个创建于 2648 天前的主题,其中的信息可能已经有所发展或是发生改变。
    15 条回复    2018-09-10 10:59:45 +08:00
    jetyang
        1
    jetyang  
       2018-09-06 09:29:32 +08:00
    不是大牛,刚好当前项目用到 gRPC。你用什么语言? gRPC Java 是在 Netty 上封装的,不需要写原生的 socket ; C/C++语言是原生的,Python、Ruby、PHP 都是在 C 语言版本上包了一层壳
    koolob
        2
    koolob  
       2018-09-06 09:39:36 +08:00
    grpc 用的是 http2。
    Kellerman
        3
    Kellerman  
    OP
       2018-09-06 09:42:21 +08:00
    @jetyang 哇,快哭了,终于有人可以讨论这个问题了,目前组里就我一个人研究这个,都没有人能讨论,我用的是 C++,主要是源代码看我的晕乎,而且没有文档可以参考,我不知道它具体的 socket 建立过程,大哥能不能详细讨论一下?
    Kellerman
        4
    Kellerman  
    OP
       2018-09-06 09:42:52 +08:00
    @koolob http2 不需要建立 socket 吗?我是想对 socket 层做修改!
    coderscala
        5
    coderscala  
       2018-09-06 09:53:47 +08:00
    为什么要修改? 你是打算修改协议还是打算在会话层做优化呢?在没有完全理解的情况下贸然修改这样合适吗? gRPC 只是一种长链接 RPC 协议封装,与其对一个不了解的项目进行修改,还不如自己动手写一套 RPC 协议(如果是个人的话,当然不建议)
    Kellerman
        6
    Kellerman  
    OP
       2018-09-06 09:59:25 +08:00
    @coderscala 没有,我只是想修改一下他的 socket 类型然后看看性能,的确没有完全理解,但是单修改这一部分应该问题不大吧。
    coderscala
        7
    coderscala  
    &nsp;  2018-09-06 10:12:44 +08:00
    你是说要把 tcp 换成 udp?这样做显然不合适,你改了 server,client 也得改,对应的工具链也得改。如果单纯的只是性能测试,你不应该尝试去 hack,这种做法会破坏一个完善的体系,你们的维护成本也会变得异常的高,商业公司肯定不会这么做。
    rockyou12
        8
    rockyou12  
       2018-09-06 10:12:44 +08:00
    @Kellerman 说实话你连 http2 协议都没搞懂就想在 4 层上做优化实在是不自量力……建议先学下 http2 协议
    coderscala
        9
    coderscala  
       2018-09-06 10:17:58 +08:00
    贸然的去改 4 层或者 5 层肯定是不合适的
    Kellerman
        10
    Kellerman  
    OP
       2018-09-06 10:19:30 +08:00
    @rockyou12 是的我没研究过 http2,也谢谢你的建议,不过我没明白四层上做的改变跟上层使用的协议有什么关系,如果是使用 tcp 的 socket 建立好了,对上层来说有什么区别?其实我也不是做优化,我只是想看一下 grpc 本身在不同 socket 下的性能。谢谢。
    Kellerman
        11
    Kellerman  
    OP
       2018-09-06 10:21:29 +08:00
    @coderscala 不是 tcp 换成 udp,是把 family 类型改一下,我们是研究型部门,不是做成熟应用的,只是想看一下不同 family 类型的 grpc 性能。
    Hellert
        12
    Hellert  
       2018-09-06 10:52:09 +08:00
    jetyang
        13
    jetyang  
       2018-09-06 16:48:24 +08:00   1
    @Kellerman 没时间,也没能力给你修改建议
    Kellerman
        14
    Kellerman  
    OP
       2018-09-10 10:59:24 +08:00
    @Hellert 这是什么?
    Kellerman
        15
    Kellerman  
    OP
       2018-09-10 10:59:45 +08:00
    @jetyang 也很谢谢啦!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2605 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 12:11 PVG 20:11 LAX 04:11 JFK 07:11
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86