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

公司现有一个 go 项目,接口 response 过大,准备将原来的 json 格式转用 protocol buff 提高传输效率,遇到的问题是现有 interface{}接口类型的数据如何转 pb 兼容编码

  •  
  •   xmpx310 · 2020-03-25 17:35:33 +08:00 · 3110 次点击
    这是一个创建于 1733 天前的主题,其中的信息可能已经有所发展或是发生改变。
    9 条回复    2020-03-26 16:00:07 +08:00
    xkeyideal
        1
    xkeyideal  
       2020-03-25 17:54:02 +08:00
    []byte + 类型枚举?
    kaifang
        2
    kaifang  
       2020-03-25 17:57:25 +08:00
    要不看下,gin 怎么实现的? https://gin-gonic.com/zh-cn/docs/examples/rendering/
    xkeyideal
        3
    xkeyideal  
       2020-03-25 17:59:54 +08:00
    补充一下,还可以用 pb 的 oneof 字段,了解一下
    lasuar
        4
    lasuar  
       2020-03-25 23:42:20 +08:00 via Android
    pb3 有个 any 类型,oneof 也可以,前者更通用
    123444a
        5
    123444a  
       2020-03-26 01:20:36 +08:00 via Android
    反射呀,有啥子问题,不解
    scnace
        6
    scnace  
       2020-03-26 02:20:06 +08:00 via Android
    any ?
    reus
        7
    reus  
       2020-03-26 08:41:53 +08:00
    json 压缩一下应该和二进制编码差不了多少。
    xkeyideal
        8
    xkeyideal  
       2020-03-26 09:25:48 +08:00
    @reus 手上有个项目,pb vs json gzip 差距还是不小的,明显 pb 在 response 的性能上有优势
    tcfenix
        9
    tcfenix  
       2020-03-26 16:00:07 +08:00
    只要你不用 encoding/json
    其他的一些库,比如生成型的,或者虽然是反射,但是可以缓存 encoder 的 jsoniter 这些性能都跟 pb 差不多

    楼主不妨多给点讯息,比如调用端是你在维护,还是其他地方?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   898 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 22:13 · PVG 06:13 · LAX 14:13 · JFK 17:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.