前言
Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目。
关于Kafka的知识总结了个思维导图

kafka 面试题
1、如何获取 topic 主题的列表
2、生产者和消费者的命令行是什么?
3、consumer 是推还是拉?
4、讲讲 kafka 维护消费状态跟踪的方法
5、讲一下主从同步
6、为什么需要消息系统,mysql 不能满足需求吗?
7、Zookeeper 对于 Kafka 的作用是什么?
8、数据传输的事务定义有哪三种?
9、Kafka 判断一个节点是否还活着有那两个条件?
10、Kafka 与传统 MQ 消息系统之间有三个关键区别
11、讲一讲 kafka 的 ack 的三种机制
13、消费者故障,出现活锁问题如何解决?
14、如何控制消费的位置
15、kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费?
16、kafka 的高可用机制是什么?
17、kafka 如何减少数据丢失
18、kafka 如何不消费重复数据?比如扣款,我们不能重复的扣。

1、如何获取 topic 主题的列表
bin/kafka-topics.sh --list --zookeeper localhost:2181
2、生产者和消费者的命令行是什么?
生产者在主题上发布消息:
bin/kafka-console-producer.sh --broker-list 192.168.43.49:9092 --topicHello-Kafka
注意这里的 IP 是 server.properties 中的 listeners 的配置。接下来每个新行就是输入一条新消息。
消费者接受消息:
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topicHello-Kafka --from-beginning
3、consumer 是推还是拉?
Kafka 最初考虑的问题是,customer 应该从 brokes 拉取消息还是 brokers 将消息推送到 consumer,也就是 pull 还 push。在这方面,Kafka 遵循了一种大部分消息系统共同的传统的设计:producer 将消息推送到 broker,consumer 从broker 拉取消息。
一些消息系统比如 Scribe 和 Apache Flume 采用了 push 模式,将消息推送到下游的 consumer。这样

本文深入探讨Kafka消息系统的关键特性和应用场景,包括消息处理、数据持久化、高可用性、顺序保证等,同时解析Kafka如何解决数据丢失和重复消费问题,以及其与传统消息队列的区别。
372

被折叠的 条评论
为什么被折叠?



