kafka高性能设计模型

x33g5p2x  于2020-12-20 发布在 Kafka  
字(1.3k)|赞(0)|评价(0)|浏览(521)

Kafka 是一个集中式大数据流平台,专为高性能而设计。为了以这种高性能处理实时消息,Kafka 在内部具有一些特征。

####分布式系统

首先,卡夫卡是基于分布式系统设计的。分布式系统是一组网络计算机,是一组服务器计算机,它们在系统中起着共同的作用。对于分布式系统,它比单个系统具有更高的性能,并且具有抗故障能力,因为即使分布式系统中的某些节点发生故障,其他节点也可以代表它处理它们。它还便于系统扩展,例如添加服务器。

例如,假设每秒处理 1000 个消息,则有一台服务器的 cpu 利用率达到 100%。如果每秒有 900 条消息,则服务器的 cpu 利用率为 90%,如果发生故障,服务可能会停止。如果添加具有相同作用的服务器来分发消息,会发生什么情况?

每个服务器每秒处理 450 个消息,cpu 利用率保持 45%,从而可靠地运行服务。通过运行这两台服务器,您可以以两倍的性能运行服务。像这样,增加相同的服务器计算机称为缩放输出。如果是这样,你可能会想,如果每秒使用2000台服务器计算机,这不成问题。

没错。增加服务器计算机的性能本身称为缩放。scale-up 的好处是,负载 Velor 的成本需要将流量分散到各种服务器,但如果服务器出现故障,则服务可能会停止,因为没有服务器来代替它。

[teah] 负载均衡器(负载均衡器)

负载均衡器正在第四次工业革命时代,几乎所有工作都通过互联网处理。从网络漫画到 Facebook 赞或 YouTube 流媒体,所有电子设备都使用互联网。

因此,我们目前正在构建一个分布式系统,以便即使一台服务器出现故障,另一台服务器也可以代表它执行。但是,由于不必要地继续添加服务器会增加不必要的成本,因此建议将 scale-out 设置为适当的 scale-up 和适当数量的服务器,而不是无条件地增加服务器以平衡负载。

  • 请注意,根据卡夫卡文档,LinkedA 的最多使用群集有 60 个代理。

##页面缓存

为了提高文件 i/o 的性能,Kafka 将一次读取的文件的内容存储在称为页面缓存的区域,并在有相同访问时从页面缓存中读取,从而最大限度地减少对相对缓慢的磁盘的访问。事实上,页面缓存的性能改进是显著的,因为卡夫卡的官方文档也指出,使用最便宜的 sata 磁盘是无可比的。

但是,由于 os 使用剩余内存作为页面缓存,但卡夫卡应用程序在物理内存中使用的部分除外,因此不建议将除 Kafka 以外的其他应用程序一起运行在一个系统中。

当服务器和客户端通信时,i/o 不可避免地发生。tcp 通信也会导致速度降低,因为每次 3 路手和 4 路手检查都会发生。为了提高这种性能,Kafka 会将其作为批处理操作处理,以便将多个较小的 i/io 捆绑在一起处理。

[network] tcp / udp

tcp tcp 是一种与 ip 一起用于在 Internet 上以消息形式发送数据的协议。tcp 具有以下特征:1. 连接式服务 。2. 高可靠性

例如,假设有 4 条消息需要一秒才能发送,则所有消息需要 4 秒的时间才能传输。但是,将四条小消息捆绑在一起并一次发送,可以减少网络往返的开销,因此您只需要一秒钟的时间。这些部署操作对卡夫卡的速度提高大有帮助。

在下一个消息中,我们将讨论主题和分区,这是卡夫卡高可用性的数据模型。

相关文章

微信公众号

最新文章

更多