【问题标题】:Why does kafka not use http?为什么kafka不使用http?
【发布时间】:2016-06-02 07:23:55
【问题描述】:

根据documention——

Kafka 使用基于 TCP 的二进制协议

有人问我们为什么不使用 HTTP。有很多原因,最好的原因是客户端实现者可以利用一些更高级的 TCP 特性——多路复用请求的能力、同时轮询多个连接的能力等。我们还在许多地方发现了 HTTP 库语言出奇地破旧。

是否有任何明确的理由,因为这似乎没有说服力?

【问题讨论】:

    标签: http apache-kafka


    【解决方案1】:

    Kafka 强调性能。

    通常,HTTP over TCP 带来的开销并不大,只要您将标头保持在最小大小即可。

    但如果你有大量的小消息来回传输,则应该考虑 HTTP 的开销。

    您的消息越小,开销所占的百分比就越大。

    --

    此外,基于文本的 HTTP 协议还有很多特性。解析 HTTP 请求可能很复杂,因此比优化的二进制协议慢。

    (例如,即使是最简单的 libmicrohttpd 也很复杂。)

    【讨论】:

      猜你喜欢
      • 2020-09-27
      • 1970-01-01
      • 2012-04-01
      • 2014-11-05
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      • 2020-04-23
      • 2012-10-01
      相关资源
      最近更新 更多