Kafka
一共35篇文章
专题:第23期
-
Kafka 高效文件存储设计特点
参考答案 Kafka 把 topic 中一个 parition 大文件分成多个小文件段,通过多个小文件段,就容易定期清除或删除已经消费完文件,减少磁盘占用。 通过索引信息,可以快速定位 message ,确定 response 的最大大小。 通过 index 元数据,全部映射到 memory,可以避免 segment file 的 IO 磁盘操作。 通过索引文件稀疏存储,可以大幅降低 index …...- 宝妹儿
- 198
- 0
-
Kafka 消息是采用 Pull 模式,还是 Push 模式
参考答案 Kafka 遵循了一种大部分消息系统共同的传统的设计:producer 将消息推送到 broker,consumer 从 broker 拉取消息。 有一些消息系统,例如Scribe 和 Apache Flume 采用了 push 模式,将消息推送到下游的consumer。 这样操作有利有弊: 由 broker 决定消息推送的速率,对不同消费速率的consumer 不太好处理。 消息系统都…...- 宝妹儿
- 171
- 0
-
数据传输的事物定义有哪三种
参考答案 数据传输的事务定义,通常有以下三种级别: 最多一次: 消息不会被重复发送,最多被传输一次,但也有可能一次不传输。 最少一次: 消息不会被漏发送,最少被传输一次,但也有可能被重复传输。 精确的一次(Exactly once): 不会漏传输也不会重复传输,每个消息都传输被一次,而且仅仅被传输一次。 以上,是 Kafka 面试题【数据传输的事物定义有哪三种】的参考答案。 输出,是最好的学习方法…...- 宝妹儿
- 115
- 0
-
Kafka事务的原理
参考答案 Kafka为了支持事务特性,引入一个新的组件:Transaction Coordinator。 Transaction Coordinator 主要负责分配pid,记录事务状态等操作。 下面是Kafka开启一个事务,到提交一个事务的运行流程图: 主要步骤如下: 1. 查找Tranaction Corordinator Producer 向任意一个 brokers 发送 …...- 宝妹儿
- 56
- 0
-
Kafka事务的特性有哪些
参考答案 Kafka事务特性: 是指一系列的生产者生产消息和消费者提交偏移量的操作在一个事务中,或者说是一个原子操作,生产消息和提交偏移量同时成功或者失败。 Kafka的事务特性本质上代表了三个功能: 1. 原子写 Kafka的事务特性本质上,是支持了Kafka跨分区和Topic的原子写操作。 在同一个事务中的消息,要么同时写入成功,要么同时写入失败。 Kafka中的Offset信息存储在一个…...- 宝妹儿
- 17
- 0
-
Kafka事务的应用场景
参考答案 Kafka中的事务特性,主要用于以下两种场景: 生产者发送多条消息可以封装在一个事务中,形成一个原子操作。多条消息要么都发送成功,要么都发送失败。 read-process-write模式:将消息消费和生产封装在一个事务中,形成一个原子操作。在一个流式处理的应用中,常常一个服务需要从上游接收消息,然后经过处理后送达到下游,这就对应着消息的消费和生成。 Kafka producer API…...- 宝妹儿
- 12
- 0
-
Kafka的分区数是不是越多越好
参考答案 1. 分区多的优点 Kafka使用分区将topic的消息打算到多个分区分布保存在不同的broker上,实现了producer和consumer消息处理的高吞吐量。 Kafka的producer和consumer都可以多线程地并行操作,而每个线程处理的是一个分区的数据。因此,分区实际上是调优Kafka并行度的最小单元。 对于producer,它实际上是用多个线程并发地向不同分区所在的br…...- 宝妹儿
- 184
- 0
-
Consumer消费Parition的分配策略
参考答案 Kafka 提供的两种分配策略: range 和 roundrobin ,由参数 partition.assignment.strategy 指定,默认是 range 策略。 当以下事件发生时,Kafka 将会进行一次分区分配: 同一个 Consumer Group 内新增消费者。 消费者离开当前所属的Consumer Group,包括shuts down 或 crashes。 订阅的主…...- 宝妹儿
- 95
- 0
-
创建topic时,如何选择合适的分区数
参考答案 方法: 创建一个只有1个分区的topic。 测试这个topic的producer吞吐量和consumer吞吐量。 假设他们的值分别是Tp和Tc,单位可以是MB/s。 然后假设总的目标吞吐量是Tt,那么分区数=Tt / max(Tp,Tc) 例如: producer吞吐量=5m/s;consumer吞吐量=50m/s,期望吞吐量100m/s; 分区数=100 / 50 =2分区 分区数一般…...- 宝妹儿
- 11
- 0
-
使用kafka-topics.sh创建(删除)了一个topic之后,Kafka背后会执行什么逻辑
参考答案 会在 Zookeeper 中的 /brokers/topics 节点下创建一个新的 topic 节点,例如 /brokers/topics/first。 触发Controller 的监听程序。 Kafka Controller 负责 topic 的创建工作,并更新 metadata cache。 以上,是 Kafka 面试题【使用kafka-topics.sh创建(删除)了一个topic…...- 宝妹儿
- 12
- 0
-
Kafka中的分区器、序列化器、拦截器的处理顺序是什么
参考答案 处理顺序:拦截器 -> 序列化器 -> 分区器。 Producer拦截器(interceptor)是在 Kafka 0.10 版本被引入的,主要用于实现 clients 端的定制化控制逻辑。Producer 允许用户指定多个interceptor按序作用于同一条消息,从而形成一个拦截链(interceptor chain)。 Intercetpor的实现接口是org.apac…...- 宝妹儿
- 118
- 0
-
Kafka中的HW、LEO、LSO、LW等分别代表什么
参考答案 1. HW 是High Watermak的缩写,俗称高水位。 它表示了一个特定消息的偏移量(offset),消费之只能拉取到这个offset之前的消息。 2. LEO 是Log End Offset的缩写。 它表示了当前日志文件中下一条待写入消息的offset。 3. LSO 特指LastStableOffset。 它具体与kafka的事物有关。 消费端参数——isolation.…...- 宝妹儿
- 375
- 0