V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Kellerman
V2EX  ›  问与答

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

  •  
  •   Kellerman · 2018-09-06 09:08:28 +08:00 · 3384 次点击
    这是一个创建于 2271 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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  
       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   ·   实用小工具   ·   2953 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 13:11 · PVG 21:11 · LAX 05:11 · JFK 08:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.