Kafka的一些重要概念和面试题

1.为什么要使用Kafka呢?

        因为数据源产生数据的速度和产生数据的规模并不是恒定的,而我们的处理逻辑基本上能够处理数据的能力上限是恒定的,并且如果直接对接数据源和我们的处理逻辑,那么后期在修改代码升级的时候会很麻烦,因此需要用消息队列进行削峰和填谷。

2.Kafka的概念

        Kafka在严格意义上其实并不是消息队列,而是一种消息中间件,因为队列的要求是有序的,但是kafka只能做到分区内的数据有序(日志文件追加写入),并不能做到分区间的数据也是有序的。

3.Kafka 都有哪些特点?

        高吞吐量:kafka每秒可以处理几十万条消息,每个topic的多分区设置以及消费者的消费者组设置可以对此进行保障。

        可扩展性:kafka的集群可以进行热扩展。

        持久性、可靠性:数据存储在磁盘。

        容错性:多节点分布式存储,分区多副本。

        高并发:可支持几千台节点并发读写。

这里要注意:kafka在设计中,满足了CAP理论中的AP,也就是可用性和分区容错性,而不能很好的保证C,也就是数据一致性,因此kafka也做了大量的工作来尽可能的保证数据一致性,这个后边再总结。

4.Kafka的基础架构

        每一台节点都是一个broker,存储数据的叫做topic,每个topic又被分成了多个partition,每个partition又会有多个副本,并且会有一个leader副本和多个follower副本。

5.Kafka的命令行命令--Topic
1.查看topic列表
kafka-topics.sh --zookeeper node1:2181 --list
2.查看topic详细信息
kafka-topics.sh --zookeeper node1:2181 --describe --topic first
3.创建topic
kafka-topics.sh --zookeeper node1:2181 --create --topic second --partitions 3 --replication-factor 2
kafka-topics.sh --zookeeper node1:2181 --create --topic second --replica-assignment 0:1:3,1:2:6
4.删除topic
kafka-topics.sh --zookeeper node1:2181 --delete --topic first
5.修改topic(增加分区数量 只能增加 不能减少)
kafka-topics.sh --zookeeper node1:2181 --alter --topic second --partitions 4
6.动态配置 topic 参数
kafka-topics.sh --zookeeper node1:2181 --alter --topic second --config compression.type=gzip 
6.Kafka的命令行命令--生产者
1.启动生产者
kafka-console-producer.sh --broker-list node1:9092 --topic second
7.Kafka的命令行命令--消费者
1.启动消费者(新开启的消费者默认会从最新的消息开始消费)
kafka-console-consumer.sh --bootstrap-server node1:9092 --topic second --from-beginning
2.指定分区和偏移量消费
kafka-console-consumer.sh --bootstrap-server node1:9092 --topic second --offset 1 --partiiton 2
3.消费者组(为了提高消费并行度)每个消费者最小的消费单位是分区。
kafka-console-consumer.sh --bootstrap-server node1:9092 --topic second --from-beginning --group ben1
每次有消费者的增加或者减少,都会引起分区的重新分配。
4.消费者消费一个不存在的topic时候可以自动创建一个单分区单副本的topic
8.Kafka之消费位移的记录

未完待续....

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值