Kafka的性能为什么这么好,大数据之必备知识储备,kafak是什么[通俗易懂]

Kafka的性能为什么这么好,大数据之必备知识储备,kafak是什么[通俗易懂]创作不易,关注、点赞,分享,转发,评论,收藏,掌握互联网前沿知识,支持一下,谢谢。Kafka性能及应用场景介绍大数据里面很火的技术Kafka,K

大家好,欢迎来到IT知识分享网。

创作不易,关注、点赞,分享,转发,评论,收藏,掌握互联网前沿知识,支持一下,谢谢。

Kafka的性能为什么这么好,大数据之必备知识储备,kafak是什么[通俗易懂]

Kafka性能及应用场景介绍

Kafka的性能为什么这么好,大数据之必备知识储备,kafak是什么[通俗易懂]

大数据里面很火的技术Kafka,Kafka 是一个分布式的消息系统,其高性能在圈内很出名。比如说,kafka可以支持多生产者、多消费者、基于磁盘的数据存储,伸缩性、高性能轻松处理巨大的消息流。

Kafka也具备多应用场景,比如用于开发消息系统,网站活动数据追踪、日志聚合、流处理等。

什么是kafka

Kafka 底层的 IO 用的是 NIO,Kafka最初由Linkedin公司开发,是一个分布式的、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统。

Kafka主要特性

1)高吞吐量、低延迟:kafka每秒可以处理大批量数据,数据延迟是毫秒级别的,其具备独特的高可用特性;

2)可扩展性:kafka集群支持横向扩展,支持高可用下应用场景;

3)持久性、可靠性:消息被持久化到本地磁盘,避免数据遗失,具备可恢复性特点;

4)容错性:允许集群中的节点失败;

5)高并发:单机可支持数千个客户端同时读写,具备高可用应用场景;

Kafka架构分析

Kafka的性能为什么这么好,大数据之必备知识储备,kafak是什么[通俗易懂]

Kafka的性能为什么这么好,大数据之必备知识储备,kafak是什么[通俗易懂]

  • Topic

消息被发送到kafak中都有一个类别,也就是常说的Topic,其实就是将消息按照topic来分类,topic就是逻辑上的分类,一个Topic可以有1个或多个Partition。

  • partition

分区,每个topic被物理划分为一个或多个分区,每个分区在物理上对应一个文件夹,Topic中的数据可以分割为一个或多个Partition,Partition在底层逻辑是log文件。

  • Leader

每个主题都有若干个Partition副本,每个分区都一个leader和多个follower,leader负责所有的读写操作。

  • producer

生产者,生产者发送消息到指定的topic下。

  • consumer

消费者,消费者从topic中消费数据,顺序执行消费数据。

  • consumer group

消费者组,每个consumer属于一个特定的消费者组,可为每个consumer指定消费者组若不指定则属于默认group。

Kafka的性能为什么这么好,大数据之必备知识储备,kafak是什么[通俗易懂]

  • follower

follower不对外提供服务,只与leader保持数据同步。

  • rebalance

Rebalance表示”重平衡”,是 Kafka 消费者端实现高可用的重要手段。

Kafka中zookeeper的作用

Kafka在使用的时候通常都需要配合Zookeeper,分区中的leader和follower均匀分布在不同的Kafka服务器上,每台Kafka服务器同时有分区leader和follower。

Kafka的性能为什么这么好,大数据之必备知识储备,kafak是什么[通俗易懂]

kafka应用场景分析

1、日志收集:可以用Kafka收集各种服务的log。

Kafka的性能为什么这么好,大数据之必备知识储备,kafak是什么[通俗易懂]

2、消息系统:生产者和消费者、缓存消息等。

Kafka的性能为什么这么好,大数据之必备知识储备,kafak是什么[通俗易懂]

3、用户活动跟踪:kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,然后消费者通过消息订阅,实时的监控分析。

4、大数据实时计算:kafka被应用到大数据处理,如与spark、storm等整合。

Kafka的性能好在什么地方,主要特点是什么

kafka不基于内存,而是硬盘存储,因此消息堆积能力更强

1、顺序写:利用磁盘的顺序访问速度,读写可以接近内存,kafka的消息都是append操作。

其终究原因是,partition是有序的,这样可以节省了磁盘的寻道时间,同时通过批量操作、节省写入次数,partition物理上分为多个segment存储,方便删除。

如下图

Kafka的性能为什么这么好,大数据之必备知识储备,kafak是什么[通俗易懂]

传统:

  • 读取磁盘文件数据到内核缓冲区
  • 将内核缓冲区的数据copy到用户缓冲区
  • 将用户缓冲区的数据copy到socket的发送缓冲区
  • 将socket发送缓冲区中的数据发送到网卡、进行传输

2、零拷贝

零拷贝是指Kafka利用 linux 操作系统的 “zero-copy” 机制在消费端做的优化。直接将内核缓冲区的数据发送到网卡传输,使用的是操作系统的指令支持。

原因如下:

1) kafka不太依赖jvm,操作系统的pageCache,如果生产消费速度可以的话,则直接用pageCache交换数据,不需要经过磁盘IO进行处理。

2) page cache

为了优化读写性能,Kafka利用了操作系统本身的Page Cache,就是利用操作系统自身的内存而不是JVM空间内存。

3) 分区分段

Kafka的message是按topic分类存储的,topic中的数据又是按照一个一个的partition即分区存储到不同broker节点。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/6401.html

(0)
上一篇 2022-12-16 17:30
下一篇 2022-12-16 17:50

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信