根据documention -
Kafka使用TCP上的二进制协议
有些人问我们为什么不使用HTTP。有很多原因,最好的是客户端实现者可以利用一些更高级的TCP功能 - 多路复用请求的能力,同时轮询多个连接的能力等等。我们还发现了许多HTTP库语言令人惊讶的破旧。
有没有明确的理由,因为这似乎并不令人信服?
答案 0 :(得分:2)
卡夫卡强调表现。
通常,HTTP通过TCP带来的开销并不大,只要您将标头保持在最小尺寸。
但如果你有大量的小消息来回传递,那么应该考虑HTTP的开销。
消息越小,大小的百分比就越大。
-
此外,基于文本的HTTP协议具有如此多的功能。解析HTTP请求可能很复杂,因此比优化的二进制协议慢。
(例如,即使是最简单的libmicrohttpd也很复杂。)