为什么Kafka不使用http?

v64noz0r  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(674)

根据文件-
kafka在tcp上使用二进制协议
有人问我们为什么不使用http。原因有很多,最好的是客户机实现者可以利用一些更高级的tcp特性--多路请求的能力,同时轮询多个连接的能力,等等。我们还发现许多语言中的http库非常破旧。
有没有明确的原因,因为这似乎没有说服力?

dgjrabp2

dgjrabp21#

Kafka强调表现。
通常http over tcp带来的开销并不大,只要您将头的大小保持在最小值即可。
但是如果有大量的小消息来回传递,那么应该考虑http的开销。
消息越小,开销所占的比例就越大。

此外,基于文本的http协议具有很多特性。解析http请求可能很复杂,因此比优化的二进制协议慢。
(例如,即使是最简单的libmicrohttpd也很复杂。)

相关问题