为什么kafka不使用http?

时间:2016-02-20 18:07:15

标签: http apache-kafka

根据documention -

  

Kafka使用TCP上的二进制协议

     

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

有没有明确的理由,因为这似乎并不令人信服?

1 个答案:

答案 0 :(得分:2)

卡夫卡强调表现。

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

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

消息越小,大小的百分比就越大。

-

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

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