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

弱弱问一下,为何 etcd 使用 HTTP+Json 而不是 TCP 或者 UDP 呢?前者不是更消耗带宽么?

  •  
  •   qq446015875 · 2015-04-02 14:24:44 +08:00 · 5381 次点击
    这是一个创建于 3548 天前的主题,其中的信息可能已经有所发展或是发生改变。
    6 条回复    2015-04-02 17:25:47 +08:00
    eric
        1
    eric  
       2015-04-02 15:08:11 +08:00
    对于这种一般跑在内网的应用瓶颈不会出现在带宽上,再造一套轮子的意义不大。
    Septembers
        2
    Septembers  
       2015-04-02 15:37:44 +08:00 via Android
    延时问题 比 带宽开销问题 更大
    bearice
        3
    bearice  
       2015-04-02 15:41:55 +08:00
    http可以直接用curl做客户端,在shell里写也基本上没问题。
    你用bash弄一个UDP客户端试试(ry
    suriv520
        4
    suriv520  
       2015-04-02 15:47:17 +08:00   ❤️ 1
    用Go写的etcd,在初期是非常需要一个友好的接口与周边生态的,这利于它的发展与推广。
    正因为用了http/json,无论是php/ruby/python甚至bashshell的curl wget,都能轻松地与之协作。开发人员几乎不需要阅读文档,只需要扫一眼http示例,就能够轻松的集成进去。
    使用tcp/udp,就需要一整套通讯协议了,就需要各种不同语言的sdk了,就需要维护各种版本细节了……费力不讨好。

    不过说回来,etcd很有可能在以后的版本中,内部通信使用纯tcp,但并不是因为带宽问题,而是延时问题。不过对外服务,http是肯定支持到底了。
    qq446015875
        5
    qq446015875  
    OP
       2015-04-02 17:21:02 +08:00
    @suriv520 嗯……明白了……谢谢!
    Livid
        6
    Livid  
    MOD
       2015-04-02 17:25:47 +08:00 via iPhone
    用 curl 调试会很方便
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4707 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:00 · PVG 12:00 · LAX 20:00 · JFK 23:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.