您好,欢迎访问三七文档
Kafka介绍及简单应用示例PPT模板:素材:背景:图表:下载:教程:资料下载:范文下载:试卷下载:教案下载:论坛:课件:语文课件:数学课件:英语课件:美术课件:科学课件:物理课件:化学课件:生物课件:地理课件:历史课件:目录一、背景介绍二、KAFKA执行过程以及组件介绍三、实例演示四、核心原理初探五、性能怪兽KAFKA(对比MQ)1背景介绍Kafka产生的背景:1.为什么要做消息系统。--------数据分析为什么要用到消息系统.txt2.Kafka是个怎样的消息系统。--------Adistributedpublish-subscribemessagingsystem消息订阅和发布系统kafka是个怎样的消息系统.txt3.目前有哪些公司应用到了Kafka--------LinkedIn,Tumblr等等4.Kafka在我们项目中的意义--------公交数据分析,停车场数据分析,流量数据分析2KAFKA执行过程以及组件介绍简单用例官方图官方图解释.txtbroker:Kafka集群包含一个或多个服务器,这种服务器被称为brokerproducer:负责发布消息到Kafkabrokerconsumer:消费消息。每个consumer属于一个特定的consuergroup(可为每个consumer指定groupname,若不指定groupname则属于默认的group)。前图再细分前图再细分.txttopic:每条发布到Kafka集群的消息都有一个类别,这个类别被称为topic。(物理上不同topic的消息分开存储,逻辑上一个topic的消息虽然保存于一个或多个broker上但用户只需指定消息的topic即可生产或消费数据而不必关心数据存于何处)分区的概念partition:parition是物理上的概念,每个topic包含一个或多个partition,创建topic时可指定parition数量。每个partition对应于一个文件夹,该文件夹下存储该partition的数据和索引文件3实例演示linux运行环境环境搭建1.安装JDK2.安装Kafka启动Linux服务01zookeeper02kafka03topic04producer05customer启动成功启动服务.txt启动Java代码cuilei01-kafkademon-master.rarScalaJavaMyProducerMySimpleConsumer4核心原理初探核心原理kafka消息删除和压缩磁盘缓存的利用Zero-copy负载均衡负载均衡的两种策略partition.assignment.strategy=range|round-robinRange:每个topic的分区独立分配分区按数字排序,线程按字典排序分区数量/线程数量整除partition多于thrad(?)partition等于threadpartition少于threadRound-robin所有topic所有分区循环分配到所有分区上,限制每个topic在每个consumer中线程数量必须相同每consumer消费的topic必须相同主从分布leader:处理消息分配要均匀follower:备份均匀分布Replicas:Isr:in-syncP0,P1,P2,P3四个分区,3副本持久化-消息格式key的解释.txt持久化-文件系统进入kafka配置的数据目录-broker-topic消息删除和压缩直接删除(默认策略)按时间:按大小:压缩(只在特定的业务场景下有意义):保留key最后一个版本的消息磁盘缓存的利用1.kafka是顺序存取的(页缓存)2.硬盘的顺序读写比随机读写要快非zero-copy传统数据发送:read(file,temp_buff,len);write(socket,tmp_buff,len)四次拷贝,四次内核态和用户态的切换zero-copyzero-copy:sendfile(out_fd,in_fd,offset,count);数据不用经过内存java.nio.channel.FileChanneltransferTo()4性能怪兽KAFKA快1.afka大量使用了磁盘作为传统意义的缓存2.zerocopy技术使用磁盘做缓存.txt扩展强1.kafka就为可扩展性而生(集群,负载均衡)容错能力强1.副本机制,自动选举leader机制THANKYOU
本文标题:技术分享
链接地址:https://www.777doc.com/doc-3077437 .html