V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
zhangqilin
V2EX  ›  Go 编程语言

grpc 在运输层走的什么协议啊?

  •  
  •   zhangqilin · 2018-04-27 14:07:10 +08:00 · 3117 次点击
    这是一个创建于 2401 天前的主题,其中的信息可能已经有所发展或是发生改变。

    gRPC 是 google 新开源的一个基于 protobuf 的 rpc 框架, 使用通信协议为 HTTP2, 网络通信层基于 netty 实现;

    运输层应该还是走的 TCP/IP 吧 但还得进行握手和挥手啊

    那 gRPC 为什么快?。。。

    17 条回复    2018-04-28 09:39:32 +08:00
    misaka19000
        1
    misaka19000  
       2018-04-27 14:10:48 +08:00
    很快嘛,具体有多快?
    LGA1150
        2
    LGA1150  
       2018-04-27 14:11:06 +08:00   ❤️ 2
    TCP 长连接和 HTTP/2 多路复用了解一下
    prolic
        3
    prolic  
       2018-04-27 14:40:51 +08:00
    一是数据压缩,二是长连接
    lance7in
        4
    lance7in  
       2018-04-27 15:08:15 +08:00
    @misaka19000 同想知道到底有多快
    justfly
        5
    justfly  
       2018-04-27 15:10:45 +08:00
    有人说过他比 tcp 快么?
    miki6180
        6
    miki6180  
       2018-04-27 17:49:17 +08:00
    grpc 什么时候变成使用 HTTP2 了?
    current
        7
    current  
       2018-04-27 17:59:55 +08:00
    grpc 借用了 HTTP2 的传输帧来封装 protobuf 的数据,传输层还是 tcp
    对于 RPC 框架来说,数据封装格式和传输协议对性能的影响并不算主要因素
    lepig
        8
    lepig  
       2018-04-27 19:18:12 +08:00
    我想问问。在实际项目中你们都是使用.proto 生产的对应语言文件吗?

    是不是每次更新借口都要生成一次。覆盖以前的。

    总感觉生成的文件太多了
    current
        9
    current  
       2018-04-27 19:22:32 +08:00
    @lepig 有的项目是把编译在编译流程里面的,也有把 proto 和实现文件一同提交到代码库的。。实际项目中都见过。。
    current
        10
    current  
       2018-04-27 19:23:07 +08:00
    @lepig 有的项目是把编译 proto 文件放在编译流程里面的,也有把 proto 和实现文件一同提交到代码库的。。实际项目中都见过。。
    jianpeng957
        11
    jianpeng957  
       2018-04-27 19:44:29 +08:00
    我个人觉得可以跟随项目走 然后跨项目可以弄 submodule 只是一种想法
    hand515
        12
    hand515  
       2018-04-27 20:04:22 +08:00
    Java 项目的话,protobuf-maven-plugin 了解一下
    pathbox
        13
    pathbox  
       2018-04-27 22:50:35 +08:00
    HTTP2
    blackboom
        14
    blackboom  
       2018-04-27 23:05:30 +08:00 via Android
    Java 项目 protobuf-maven-plugin 没有发现怎么自动编译,修改文件需要手动 build 如果有 CI 之类的东西,需要配置环境,挺麻烦。

    如果有这么一个插件都搞定了那完美
    msg7086
        15
    msg7086  
       2018-04-28 07:16:51 +08:00
    速度快慢和 TCP 握手挥手有啥关系,难道还要一个请求握一次?
    owt5008137
        16
    owt5008137  
       2018-04-28 09:22:48 +08:00 via Android
    gRPC 还帮你做了黏包和小包自动合大包呢,这个才大幅提升网络性能。
    godsoul
        17
    godsoul  
       2018-04-28 09:39:32 +08:00
    grpc 快,你也说得出口?你压测下,看看 grpc 和 thrift 这种传统的对比,http 拖着腿,能快哪里去
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2867 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 03:34 · PVG 11:34 · LAX 19:34 · JFK 22:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.