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

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

不过说回来,etcd很有可能在以后的版本中,内部通信使用纯tcp,但并不是因为带宽问题,而是延时问题。不过对外服务,http是肯定支持到底了。
qq446015875
2015-04-02 17:21:02 +08:00
@suriv520 嗯……明白了……谢谢!
Livid
2015-04-02 17:25:47 +08:00
用 curl 调试会很方便

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/181108

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX