大家好,欢迎来到IT知识分享网。
创作不易,关注、点赞,分享,转发,评论,收藏,掌握互联网前沿知识,支持一下,谢谢。
Kafka性能及应用场景介绍
大数据里面很火的技术Kafka,Kafka 是一个分布式的消息系统,其高性能在圈内很出名。比如说,kafka可以支持多生产者、多消费者、基于磁盘的数据存储,伸缩性、高性能轻松处理巨大的消息流。
Kafka也具备多应用场景,比如用于开发消息系统,网站活动数据追踪、日志聚合、流处理等。
什么是kafka
Kafka 底层的 IO 用的是 NIO,Kafka最初由Linkedin公司开发,是一个分布式的、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统。
Kafka主要特性
1)高吞吐量、低延迟:kafka每秒可以处理大批量数据,数据延迟是毫秒级别的,其具备独特的高可用特性;
2)可扩展性:kafka集群支持横向扩展,支持高可用下应用场景;
3)持久性、可靠性:消息被持久化到本地磁盘,避免数据遗失,具备可恢复性特点;
4)容错性:允许集群中的节点失败;
5)高并发:单机可支持数千个客户端同时读写,具备高可用应用场景;
Kafka架构分析
- 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。
- follower
follower不对外提供服务,只与leader保持数据同步。
- rebalance
Rebalance表示”重平衡”,是 Kafka 消费者端实现高可用的重要手段。
Kafka中zookeeper的作用
Kafka在使用的时候通常都需要配合Zookeeper,分区中的leader和follower均匀分布在不同的Kafka服务器上,每台Kafka服务器同时有分区leader和follower。
kafka应用场景分析
1、日志收集:可以用Kafka收集各种服务的log。
2、消息系统:生产者和消费者、缓存消息等。
3、用户活动跟踪:kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,然后消费者通过消息订阅,实时的监控分析。
4、大数据实时计算:kafka被应用到大数据处理,如与spark、storm等整合。
Kafka的性能好在什么地方,主要特点是什么
kafka不基于内存,而是硬盘存储,因此消息堆积能力更强
1、顺序写:利用磁盘的顺序访问速度,读写可以接近内存,kafka的消息都是append操作。
其终究原因是,partition是有序的,这样可以节省了磁盘的寻道时间,同时通过批量操作、节省写入次数,partition物理上分为多个segment存储,方便删除。
如下图
传统:
- 读取磁盘文件数据到内核缓冲区
- 将内核缓冲区的数据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