V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wangwangleilei
V2EX  ›  程序员

编译型语言线上如何验证 对端 rpc 接口的准确性

  •  
  •   wangwangleilei · Mar 29, 2018 · 2855 views
    This topic created in 2953 days ago, the information mentioned may be changed or developed.

    像 python 这种语言,可以开 repl ( language shell )来调用对端的 rpc 接口(这里不包括 http 接口)看返回的值是否正确。但是像 go 这种编译型语言该怎么做呢?部署的时候 go 的程序只是一个二进制文件,跑在容器中,也没有 go 的环境和源码(把 go 环境放到容器中浪费,生产环境一定不会这么做)

    编译型语言应该都有这样的问题吧,想请教一下各位大佬都是怎么做的。

    8 replies    2018-03-30 14:45:41 +08:00
    exch4nge
        1
    exch4nge  
       Mar 30, 2018
    ??? 不管哪个语言不得写调用 rpc 接口的代码吗? 区别是

    ( repl 里)写代码 --> 看结果 --> 不对就调整代码 --> 看结果 ...
    go 语言 写代码 --> 编译 --> 执行 --> 看结果 --> 不对就调整代码 --> 编译 --> 执行 --> 看结果 ...
    goofool
        2
    goofool  
       Mar 30, 2018 via Android
    成熟的框架都有不同语言的实现,用 go 写,python 测就行了呗
    BBCCBB
        3
    BBCCBB  
       Mar 30, 2018
    契约测试? 没实践过....
    Immortal
        4
    Immortal  
       Mar 30, 2018
    写个对应协议的客户端来测试不就好了,服务端有封包解包的代码了,客户端直接拿来就能用。

    顺路问下“把 go 环境放到容器中浪费,生产环境一定不会这么做”这个是怎么考虑的。。你这样把一堆微服务全给打死了
    wangwangleilei
        5
    wangwangleilei  
    OP
       Mar 30, 2018
    @Immortal 线上发布的是可执行程序,要 go 的环境做什么
    Immortal
        6
    Immortal  
       Mar 30, 2018
    @wangwangleilei 额 是我看错了 我以为你的意思是“ go 程序不需要放在容器中”,抱歉
    zhangysh1995
        7
    zhangysh1995  
       Mar 30, 2018
    emmm Java 不是编译行的吗? RMI 好好的。。
    noli
        8
    noli  
       Mar 30, 2018
    跟是不是编译型语言没有关系,跟有没有 API 元信息有关系。
    譬如 C#,CIL 里面自带任何函数、任何类的元信息,并且可以串行化,就可以验证 RPC 调用是契合,甚至版本是否正确。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1344 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 17:18 · PVG 01:18 · LAX 10:18 · JFK 13:18
    ♥ Do have faith in what you're doing.