kafka的简单概述及基本命令
一、Kafka简介,什么是kafka
Kafka:消息队列,缓存数据
kafka是一个分布式消息队列,流式计算中,一般用来缓存数据
在流式计算中,Kafka一般用来缓存数据,SparkStream/Flink/Storm通过消费Kafka的数据进行计算。
1)Apache Kafka是一个开源消息系统,由Scala写成。是由Apache软件基金会开发的一个开源消息系统项目。
2)Kafka最初是由LinkedIn开发,并于2011年初开源。2012年10月从Apache Incubator毕业。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。
3)Kafka是一个分布式消息队列。Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。
4)无论是kafka集群,还是producer和consumer都依赖于zookeeper集群保存一些meta信息,来保证系统可用性。
二、传统的消息队列
点对点:生产者推送队列 消费者拉取消息 发送反馈 消息被删除
发布订阅:生产者推送队列 队列将消息推送给订阅的消费者 消息不会被删除
Kafka:基于订阅发布 生产者推送队列 消费者主动拉取
三、kafka组件
生产者 producer
消费者 consumer
Broker 每台kafka相当于broker
Topic 就是一个队列
partition 分区
replication副本
四、kafka写入数据流程
1. 从zookeeper找到leader
2. 将数据返回leader
3. Leader 将数据写入到本地 发送ack
4. Follower 同步数据 发送ack
五、分区规则:
1. 指定了partition,则直接使用
2. 未指定partition 但指定key,通过对key的vlaue进行hash出一个partition
3. Partition 和 key 都未指定,使用轮询选出一个partition
未指定分区
Key 不为 null abs取绝对值
Math.abs(key.hashcode)%numberpartitions
指定分区
向指定分区写入数据
六、自定义分区器
七、数据保存
数据保存到topic中的分区中 (物理上是一个目录)
顺序写入磁盘
Index 文件
Log文件
八、数据存储策略
基于时间 :周期性的从文件末尾删除过期的数据(默认一周)7天
基于大小 : 周期性的将超过最大值的 (默认1G)数据文件重命名 生成新的文件,删除旧的文件
九:kafka命令
控制台生产者:
kafka-console-producer.sh --topic test --broker-list hadoop:9092控制台消费者:
kafka-console-consumer.sh --topic test --bootstrap-server hadoop:9092 --from-beginning主题:(topic)
创建主题
kafka-topics.sh --create --topic test --zookeeper hadoop:2181 --partitions 3 --replication-factor 3查看主题
kafka-topics.sh --describe --topic test --zookeeper hadoop:2181查看主题列表
kafka-topics.sh --list --topic test --zookeeper hadoop:2181
kafka-topics.sh --list --zookeeper hadoop:2181删除主题
kafka-topics.sh --delete --zookeeper hadoop:2181 --topic first
需要知识文档的博友请在下方留言评论......
kafka的简单概述及基本命令相关推荐
- 8086CPU相关汇编语言的简单概述
8086CPU相关汇编语言的简单概述 1.寄存器 通用寄存器 8806CPU给出物理地址的方法 段寄存器 修改CS,IP的指令 2.寄存器(内存访问) 栈机制 3.[BX]和loop指令 [BX] l ...
- XSS漏洞简单概述--UGa
XSS漏洞简单概述–UGa 个人笔记向,请多指点 *简介 XSS作为OWASP TOP 10之一,XSS被称为跨站脚本攻击(Cross-site scripting) ,本来应该缩写为CSS,但是由于 ...
- Kafka 的简单介绍
Kafka 是由 Apache 软件基金会开发的一个开源流处理平台,由 Scala 和 Java 编写.Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据. ...
- SpringSecurity的简单概述以及配置SpringSecurity的默认登录页面
SpringSecurity的简单概述 是什么:SpringSecurity融合Spring技术栈,提供JavaEE应 用的整体安全解决方案:提供全面的安全服务 有什么用:可以进行身份验证,就是证明你 ...
- 关于“7个好习惯”的简单概述
Title: 关于"7个好习惯"的简单概述 Content: 同事发给的,共勉. 下面是关于"7个好习惯"的简单概述,与大家分享一下,希望对大家.对我们的团队有 ...
- 计算机底层:计算机层次结构(高级语言到低级语言的简单概述)
计算机底层:计算机层次结构(高级语言到低级语言的简单概述): 操作系统可以有效地分配任务给cpu,控制硬件进行搞效率地使用等等,创造操作系统主要是为了满足两大需求:提高资源利用率.增强计算机系统性能. ...
- Hadoop的简单概述以及架构
Hadoop的简单概述以及架构 1.hadoop概述:hadoop是一个适合海量数据分布式存储和分布式计算的平台. 2.hadoop是一个统称,hadoop主要包含三大组件: (1)hdfs:是一个分 ...
- 垃圾回收器(简单概述)
垃圾回收器(简单概述) GC分类与性能指标 垃圾回收器概述 垃圾收集器没有在规范中进行过多的规定,可以由不同厂商.不同版本的JVM来实现. 由于JDK的版本处于高速迭代过程中,因此Java发展至今衍生 ...
- java虚拟机-简单概述(五月的仓颉)
1 java的简单概述 java版本介绍 1.Java SE(标准版),主要活跃在桌面领域,主要包含了Java API组件. 2.Java EE(企业版),活跃在企业级领域,除了包含Java API ...
最新文章
- 二阶声波正演c语言程序_嵌入式开发中的三种程序构架
- binlog数据库不写入binlog_mysql 为什么不能仅仅用 binlog 保证不丢数据
- 三周第五次课(4月10日)
- 【MySQL】可重复读模式下 unique key失效案例
- vue 事件总线EventBus的概念、使用以及注意点
- CSDN:Markdown extra grammar
- QT绘制百分比条形图。
- tomcat下只有.class文件 没有java文件_解决tomcat发布工程后,WEB-INF/classes下文件不编译的问题...
- java 类一定要声明成public_类和对象练习题
- Opportunity creation case in Firebug
- 【CodeForces 577C】Vasya and Petya’s Game
- matlab保存数据到excel_Excel意外退出数据未保存?这个方法可以帮你找回所有数据...
- java环境变量自动设置_自动设置Java环境变量
- 趁618买iPhone 11还是等iPhone 12?李楠有话要说
- 解决KMPlayer 播放RMVB 一直是快进的问题
- 视频主观质量评价方法
- pythonopencv算法_OpenCV3-Python基于Kalman和CAMShift算法应用
- opencv图像像素操作方法
- 天堂2单机启动不了mysql_天堂2第8章单机版启动问题
- 大一上计算机期末试题,大一计算机期末考试试题及答案
热门文章
- SAP Spartacus lock focus directive如何判断有没有focusable children
- rxjs 里的map operator
- 什么是Angular的Target
- ABAP应用服务器的HTTP响应状态码(Status Code)
- SAP C4C里没有选择Port binding的url Mashup行为分析
- SAP UI5 Logon Handler of Frame
- SAP Fiori refreshSecurityToken
- 什么是Marketing Cloud的ABM - Account-Based Marketing
- 如何处理错误消息Query XXX is invalid or contains errors
- IBASE category 设置为01的情况下 IBASE自动创建情况