首页 > 其他分享 >kafka 基础知识

kafka 基础知识

时间:2024-07-22 21:00:43浏览次数:17  
标签:分区 Broker Kafka 消息 kafka 磁盘 基础知识

1、Kafka简介
Apache Kafka是由Apache开发的一种发布订阅消息系统。Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。发布/订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息 分为不同的类别,订阅者只接收感兴趣的消息。
Kafka是一个类JMS消息队列,结合了JMS 中的两种模式,可以有多个消费者主动拉取数据。虽然它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现,在JMS 中只有点对点模式才有消费者主动拉取数据。
2、kafka的3个关键功能
◆ 发布和订阅记录流,类似于消息队列或企业消息传递系统。
◆ 以容错的持久方式存储记录流。
◆ 处理记录流。
3、kafka通常用于两大类应用:
◆ 建立实时流数据管道,以可靠地在系统或应用程序之间获取数据
◆ 构建实时流应用程序,以转换或响应数据流
4、kafka 的特性
(1) 消息持久化
(2) 高吞吐量、低延迟:afka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition,consumer group 对 partition 进行consume操作。
(3) 扩展性:kafka集群支持热扩展
(4) 多客户端支持:高并发,支持数千个客户端同时读写
(5) Kafka Streams
(6) 安全机制
(7) 数据备份
(8) 轻量级
(9) 消息压缩
5、 kafka的5个核心Api
◆ Producer API
◆ Consumer AP]
◆ Streams API
◆ Connector API
◆ Admin API
6、什么是Broker(代理)?
Kafka集群中,一个 kafka 实例被称为一个代理(Broker)节点。无论是 kafka 集群,还是 producer 和 consumer 都依赖于 zookeeper 来保证系统可用性,为集群保存一些 meta (元数据)信息。
7、什么是Producer(生产者)?
消息的生产者被称为Producer。
Producer将消息发送到集群指定的主题中存储,同时也自定义算法决定将消息记录发送到哪个分区。
8、什么是Consumer(消费者)
消息的消费者,从kafka集群中指定的主题读取消息。
9、什么是Topic(主题)?
主题,kafka通过不同的主题却分不同的业务类型的消息记录。
10、什么是Partition(分区)?
每一个Topic可以有一个或者多个分区(Partition)。
11、分区和代理节点的关系?
一个分区只对应一个Broker,一个Broker可以管理多个分区。
12、什么是副本(Replication)?
每个主题在创建时会要求制定它的副本数(默认1)。
13、什么是记录(Record)?
实际写入到kafka集群并且可以被消费者读取的数据。
每条记录包含一个键、值和时间戳。
14、kafka适合哪些场景?
◆ 日志收集
◆ 消息系统
◆ 活动追踪
◆ 运营指标
◆ 流式处理
◆ 时间源等
15、kafka磁盘选用上?
SSD的性能比普通的磁盘好,这个大家都知道,实际中我们用普通磁盘即可。它使用的方式多是顺序读写操作,一定程度上规避了机械磁盘最大的劣势,即随机读写操作慢,因此SSD的没有太大优势。
16、使用RAID的优势?
◆ 提供冗余的磁盘存储空间
◆ 提供负载均衡
17、磁盘容量规划需要考虑到几个因素?
◆ 新增消息数
◆ 消息留存时间
◆ 平均消息大小
◆ 备份数
◆ 是否启用压缩
18、Broker使用单个?多个文件目录路径参数?
log.dirs 多个
log.dir 单个
19、一般来说选择哪个参数配置路径?好处?
log.dirs
好处:
◆ 提升读写性能,多块物理磁盘同时读写高吞吐。
◆ 故障转移。一块磁盘挂了转移到另一个上。
20、自动创建主题的相关参数是?
auto.create.topics.enable
21、解决kafka消息丢失问题?
不要使用 producer.send(msg),而要使用 producer.send(msg, callback).
设置 acks = all。
设置 retries 为一个较大的值。
设置 unclean.leader.election.enable = false.
设置 replication.factor >=3.
设置 min.insync.replicas >1.
确保 replication.factor >min.insync.replicas .
确保消息消费完成再提交。
22、如何自定分区策略?
◆ 显式地配置生产者端的参数partitioner.class
◆ 参数为你实现类的全限定类名,一般来说实现partition方法即可。
23、kafka压缩消息可能发生的地方?
Producer 、 Broker.
24、kafka 消息重复问题?
◆ 做好幂等。
◆ 数据库方面可以(唯一键和主键)避免重复
◆ 在业务上做控制。
具体在项目中的运用可参考以下资料:
https://zhuanlan.zhihu.com/p/698928252

标签:分区,Broker,Kafka,消息,kafka,磁盘,基础知识
From: https://blog.csdn.net/qq_39964887/article/details/140592326

相关文章

  • c++零基础知识要点整理(7)
    *请搭配c++零基础知识要点整理(5)使用位或运算符的应用: | (有1即1)1.设置标记位(使某一个位置的值变为1)inta=0b101101;//(以使第五位变为1举例,即使a变为:0b11101)cout<<(a|0b10000)<<endl;//要使第五个位置的值变为1,则将这个数和0b10000进行位或//以此类推:需要使第四个......
  • docker-compose部署kafka-ui部署以及使用
    1.docker-compose配置脚本version:"3"services:kafka-ui:image:provectuslabs/kafka-ui:v0.7.2container_name:kafka-uihostname:kafka-uiprivileged:truerestart:alwaysenvironment:-DYNAMIC_CONFIG_ENABLED=true......
  • JS基础知识总结(4)
    一、字符串反转的方式varstr1=str.split("").reverse().join("");//记住这个让字符串反转的方式二、实现某个字符的“偏移”(也就是说ASCII码值往后挪,往前挪多少位)。/***@description字符串加密*@param{number}offset偏移量......
  • Day02-计算机硬件以及快捷键(电脑基础知识)
    Day02-计算机硬件以及快捷键(电脑基础知识)学习Java第二天,想要学好计算机,最基础也是最能用来装13就是了解电脑的基础知识了!此篇文章依旧是受秦疆老师视频影响,对计算机硬件以及一些基本操作进行了总结在开始之前首先推荐一些电脑必备好用的软件:视频播放器推荐PotPlayer,压......
  • Docker-Compose配置zookeeper+KaFka+CMAK简单集群
    1. 本地DNS解析管理#编辑hosts文件sudonano/etc/hosts#添加以下三个主机IP192.168.186.77zoo1k1192.168.186.18zoo2k2192.168.186.216zoo3k3注:zoo1是192.168.186.77的别名,zoo2是192.168.186.18的别名,zoo3是192.168.186.126的别名,IP自行修改即可,其他配置可以......
  • 信息系统基础知识
    信息系统概述信息系统是由计算机硬件、网络和通信设备、计算机软件、信息资源、信息用户和规章制度组成的以处理信息流为目的的人机一体化系统。信息系统的5个基本功能输入存储处理输出控制信息系统的性质影响着系统开发者和系统用户的知识需求。以计算机为基础:要求......
  • java的一些基础知识
    文章目录JDK、JRE、JVM变量关键字标识符规则数据类型基本数据类型(简单数据类型)引用数据类型(除基本数据类型以外的数据类型)运算符Java流程控制语句分支语句循环语句特殊的流程控制语句方法形参实参数组数组动态初始化和静态初始化数组的复制数组的扩容数组的删除二维......
  • 【网络基础知识】三级跳板技术揭秘:企业如何防范网络“隐形刺客”?
    在一个寂静的夜晚,一家知名科技公司的网络管理员小李突然发现,公司内网的数据流量异常激增,而且似乎有未授权的设备在进行数据传输。小李立即启动了应急响应机制,但奇怪的是,公司的防火墙和入侵检测系统都没有发出任何警报。这究竟是怎么一回事?原来,这一切的幕后黑手正是一种被称为“三......
  • c++零基础知识要点整理(5)
    1.位与运算符:& (位与:代表把二进制的每个数的每一位从低到高进行运算(有0必0))逻辑与:&&(有假必假)(1)位与的定义:inta=0b1001;//0b1001是二进制表示法,0b代表用二进制表示,0b1001对应十进制数为:9intb=0b0101;//对应十进制数为:5a&b=0b0001;//12.位或运算符:| (有1即1)逻辑或:||......
  • JavaScript 基础知识 Day01
    一、计算机基础知识1、计算机数据存储单位位(Bit):1bit可以保存一个0或者1(最小的存储单位)字节(Byte):1B=8b千字节(KB):1KB=1024B兆字节(MB):1MB=1024KB吉字节(GB):1GB=1024MB太字节(TB):1TB=1024GB2、关于JavaScript 它是在1952年2月由网景开......