Broker对Kafka的设计也是Kafka速度快的原因之一。
首先,客户端发送的每个请求都会发送给接受者。 默认情况下,代理具有三个线程。 这三个线程称为处理器。
接收方不对客户端的请求执行任何操作;它直接封装请求。 向这些处理器发送一个socketChannel以形成一个队列。
传输方式为轮询。也就是说,它首先发送到第一个处理器,然后发送到第二个、第三个,然后返回到第一个处理器。 当消费者线程使用这些套接字通道时,它们会收到拉取请求,并且数据伴随这些拉取请求。
默认情况下,线程池有8个线程。 这些线程用于处理请求和解析请求。 如果请求是写请求,则会写入磁盘。 如果读取,则返回结果。 处理器从响应中读取响应数据并将其返回给客户端。
这就是Kafka的三层网络架构。
因此,如果您需要增强和调优Kafka,使其在线程池中拥有更多处理器和更多处理线程,就可以实现该效果。 请求和响应实际上是当处理器生成请求太快而线程数量不足以及时处理它们时的缓存效应。
重要要点
我希望这篇文章可以帮助您入门并了解Kafka、它所具有的组件以及为什么它能够实现如此高性能。
Kafka 在现代高并发系统架构中发挥着关键作用,并且仍在快速发展,包括流媒体。
本文仅从概念和简单的设计原理上介绍Kafka。 掌握它还不够。
如果需要更详细的分析,请参考官方文档。
感谢您的阅读!
[1]Kafka控制器重新设计
(本文翻译自Patrick Gopher的文章《Break down Kafka by Nine Graphs》,参考:https://medium.com/dataseries/break-down-kafka-by-nine-graph-b19ad767337c)
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/83582.html