Kafka 支持高吞吐量、什让高度分布式、快速容错性强的什让平台,能够以低延迟传递消息 。快速 有几种技术使 Apache Kafka 如此快速 : 低延迟消息传递批量数据和压缩水平扩展
低延迟消息传递大多数传统的什让数据系统使用随机存取内存(RAM)进行数据存储,因为RAM提供了极低的快速延迟 。让我们看看使用RAM的什让优缺点 。 优点 : 这种方法使它们变得非常快速。快速缺点: RAM的什让成本远高于磁盘 ,特别是快速当系统中有数百GBPS的数据流时。建站模板Kafka 避免了随机存取内存,什让它通过顺序I/O和零拷贝原理实现低延迟消息传递。快速 顺序I/O :Kafka 在存储和缓存消息时大量依赖文件系统。什让有一种普遍的快速看法是“磁盘很慢” ,这意味着高寻址时间。什让想象一下,如果我们可以避免寻址时间 ,我们可以实现与RAM一样低的延迟 。Kafka 通过顺序I/O来实现这一点 。 Kafka 的基本概念是日志(log);这是一种仅附加、亿华云完全有序的数据结构。 下面是一个演示日志流(队列)的图示,生产者以不可变和单调的方式在日志流的末尾追加,而订阅者/消费者可以维护自己的指针以指示当前消息的处理。
来源 :https://kafka.apache.org/intro.html 每当生产者发布一条消息时 ,它都会收到包含记录偏移量的确认。第一条发布到分区的记录的香港云服务器偏移量为0,第二条为1,以此类推,以递增的顺序。消费者从由偏移量指定的位置消费数据,然后定期将其位置保存在日志中以进行提交。保存偏移量的目的是让另一个消费者在消费者实例崩溃时可以从其位置恢复 。 零拷贝原理 :当我们从内存中提取数据并将其发送到网络时会发生什么 。 从内存中提取数据,它会将数据从内核上下文复制到应用程序上下文将这些数据发送到互联网,它会将数据从应用程序上下文复制到内核上下文 。源码下载
图像概念来自 :https://developer.ibm.com/articles/j-zerocopy/ 正如您所看到的,将数据在内核上下文和应用程序上下文之间进行复制是多余的,这会消耗CPU周期和内存带宽,尤其是在数据量很大时会导致性能下降。这正是零拷贝原则要解决的问题。
图像概念来自 :https://developer.ibm.com/articles/j-zerocopy/ 批量数据和压缩高效的压缩需要将多个消息一起压缩 ,而不是分别压缩每个消息。 Kafka 支持这一点,服务器租用允许递归消息集。一批消息可以被聚合在一起压缩,并以这种形式发送到服务器。这批消息将以压缩形式写入,保持在日志中并只能由消费者解压缩。 假设带宽为10MB/s,一次性发送10MB数据比逐个发送10000条消息要快得多(假设每条消息占用100字节) 。 压缩会提高消费者的吞吐量,但会增加一些解压缩成本。 Kafka 支持 GZIP 和 Snappy 压缩协议 。 水平扩展首先让我们了解什么是垂直扩展。假设对于传统数据库服务器 ,当负载增加时,处理的源码库一种方法是添加更多的资源,例如 CPU 、RAM 、SSD 等。这被称为垂直扩展 。它有一些缺点,如下所示 : 每台硬件都有限制 ,无法无限制地向上扩展如果机器宕机怎么办?通常需要停机时间水平扩展通过添加更多的机器来解决相同的问题 。 Kafka 具有在数千台机器之间为单个主题拥有数千个分区的能力,这意味着 Kafka 可以处理大量负载 。 |
探索Nowallprime的性(无墙壁体验的未来——Nowallprime的突破性创新)红米Note4在知乎上的评价如何?(通过知乎用户的真实评价了解红米Note4的性能、使用体验及优缺点)索尼笔记本装机教程(一步步教您如何在索尼笔记本上进行硬件升级和软件安装)探索苹果7P10.33系统的卓越性能与特点(一探苹果7P10.33系统的强大功能和用户体验)VivoY55L(一款性价比高、功能强大的手机选择)相机CF卡芯片损坏解决方法(教你应对相机CF卡芯片损坏的情况,避免数据丢失)第七代i57500的卓越表现(一款出色的处理器推动电脑性能提升)一体化电脑设置教程(简单操作,快速上手,助你充分利用一体化电脑的功能)红米Note恢复出厂设置密码是什么香港物理机b2b信息平台亿华云源码库企业服务器网站建设云服务器