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

gRPC 和普通 HTTP API 哪个更适合 APP 客户端与服务器通信?为什么大部分 APP 都还在使用传统 HTTP API?

  •  
  •   drymonfidelia · 8 小时 37 分钟前 · 653 次点击
    11 条回复    2024-10-25 06:47:42 +08:00
    hefish
        1
    hefish  
       8 小时 20 分钟前
    因为大部分 app 开发是 sb ,只有用 grpc 的才是正常开发。
    我也是 sb 。
    kk2syc
        2
    kk2syc  
       7 小时 40 分钟前
    因为大部分 APP 用不到 gRPC 带来的性能提升,反而提高了因为开发维护的难度。都是草台班子,规范的 http-api 就不错了,更别提还有用纯 text 做接口的。(只返回 OK 、ERROR 字符串)
    tool2dx
        3
    tool2dx  
       7 小时 14 分钟前 via Android
    gRPC 对比来说,和 json 或者 xml 都不一样,不是自解释的,必须要搭配着 protocol 文件一起用,就挺麻烦的。
    也有可能是大部分开发项目,都在实现功能阶段,远远没有达到优化阶段。
    flyqie
        4
    flyqie  
       6 小时 50 分钟前 via Android
    其实我更想问你为什么会觉得应该用 grpc 而不是 http?
    fpk5
        5
    fpk5  
       6 小时 32 分钟前
    grpc 是二进制的,可能在调试的时候比较麻烦?
    louiswong2099
        6
    louiswong2099  
       6 小时 24 分钟前
    grpc 还没有 http api 应用的那么广泛,但是可以在服务器内部之前大量使用。
    drymonfidelia
        7
    drymonfidelia  
    OP
       6 小时 21 分钟前
    @flyqie HTTP2 可以复用连接,结合 protobuf 压缩效率高提升弱网体验,传输的是二进制没有编码问题,还可以直接把图片和文字一起传输不用 base64 浪费带宽
    akira
        8
    akira  
       5 小时 49 分钟前
    你缺这点带宽么。。
    wangritian
        9
    wangritian  
       5 小时 29 分钟前
    传统 api 也可以 h2
    你会问这个问题肯定也用不到 protobuf 对比 json 的提升
    你非要图片文字一起传?更不用说对象存储
    唯一考虑点就是你要不要服务器主动推数据,一般也是走系统推送
    drymonfidelia
        10
    drymonfidelia  
    OP
       3 小时 47 分钟前
    @akira 弱网环境下少传 1kb 都能提升体验
    fox0001
        11
    fox0001  
       36 分钟前 via Android
    一般使用 http 。主要是因为 grpc 是保持连接的,服务器的连接数是有限制的,使用 grpc 会导致限制了客户端数量。

    重点还是根据实际情况而定。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1219 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:24 · PVG 07:24 · LAX 16:24 · JFK 19:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.