前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Java高频面试题- 每日三连问?【Day34】 — Kafka篇(二)

Java高频面试题- 每日三连问?【Day34】 — Kafka篇(二)

作者头像
浩说编程
发布于 2022-04-12 06:22:49
发布于 2022-04-12 06:22:49
2420
举报
文章被收录于专栏:Java经验之谈Java经验之谈

问题导读

一、Kafka 的多副本机制了解吗?

二、Kafka 的多分区(Partition)以及多副本(Replica)机制有什么好处呢?

三、Zookeeper 在 Kafka 中的作用知道吗?

01

Kafka 的多副本机制了解吗?

正经回答:

Kafka 为分区(Partition)引入了多副本(Replica)机制。

分区(Partition)中的多个副本之间会有一个叫做 leader 的家伙,其他副本称为 follower。

我们发送的消息会被发送到leader 副本,然后 follower 副本才能从 leader 副本中拉取消息进行同步。

生产者和消费者只与 leader 副本交互。

你可以理解为其他副本只是 leader 副本的拷贝,它们的存在只是为了保证消息存储的安全性。

当 leader 副本发生故障时会从 follower 中选举出一个 leader,但是 follower 中如果有和 leader 同步程度达不到要求的参加不了 leader 的竞选。

分享朋友圈,记录学习每一天~

02

Kafka 的多分区(Partition)

以及多副本(Replica)机制有什么好处呢?

正经回答:

 Kafka 通过给特定 Topic 指定多个 Partition, 而各个 Partition 可以分布在不同的 Broker上, 这样便能提供比较好的并发能力(负载均衡)。

 Partition 可以指定对应的 Replica 数, 这也极大地提高了消息存储的安全性, 提高了容灾能力,不过也相应的增加了所需要的存储空间。

03

Zookeeper 在 Kafka 中的作用知道吗?

正经回答:

 Broker 注册 :

在 Zookeeper 上会有一个专门用来进行 Broker 服务器列表记录的节点。

每个 Broker 在启动时,都会到 Zookeeper 上进行注册,即到 /brokers/ids 下创建属于自己的节点。

每个 Broker 就会将自己的 IP 地址和端口等信息记录到该节点中去。

 Topic 注册 :

在 Kafka 中,同一个 Topic 的消息会被分成多个分区并将其分布在多个Broker 上,这些分区信息及与 Broker 的对应关系也都是由 Zookeeper 在维护。

比如我创建了一个名字为 my-topic 的主题并且它有两个分区,对应到 zookeeper 中会创建这些文件夹:

/brokers/topics/my-topic/Partitions/0、

/brokers/topics/my-topic/Partitions/1

 负载均衡 :

上面也说过了 Kafka 通过给特定 Topic 指定多个 Partition, 而各个 Partition可以分布在不同的 Broker 上, 这样便能提供比较好的并发能力。

对于同一个 Topic 的不同 Partition,Kafka 会尽力将这些 Partition 分布到不同的 Broker 服务器上。

当生产者产生消息后也会尽量投递到不同 Broker 的 Partition 里面。

当 Consumer 消费的时候,Zookeeper 可以根据当前的 Partition 数量以及 Consumer 数量来实现动态负载均衡。

- End -

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浩说编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
入门篇!大白话带你认识 Kafka!
今天我们来聊聊 Kafka ,主要是带你重新认识一下 Kafka,聊一下 Kafka 中比较重要的概念和问题。在后面的文章中我会介绍:
Guide哥
2020/05/07
6440
【Kafka】(二)Kafka 的架构
如上图所示: 一个典型的 Kafka 集群中包含若干 Producer(可以是 web 前端产生的 Page View,或者是服务器日志,系统 CPU、Memory 等); 若干 broker(Kafka 支持水平扩展,一般 broker 数量越多,集群吞吐率越高),若干 Consumer Group,以及一个 Zookeeper 集群; Kafka 通过 Zookeeper 管理集群配置,选举 leader,以及在 Consumer Group 发生变化时进行 rebalance; Producer 使用 push 模式将消息发布到 broker,Consumer 使用 pull 模式从 broker 订阅并消费消息;
redszhao
2021/08/09
9350
【Kafka】(二)Kafka 的架构
Kafka进阶面试题分享
1) 缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafka中,下游服务就可以按照自己的节奏进行慢慢处理。
857技术社区
2022/05/17
1.1K0
Kafka进阶面试题分享
kafka–核心技术篇
在消息发送的过程中,涉及到了两个线程——main 线程和== Sender 线程==。在 main 线程中创建了一个双端队列 RecordAccumulator(32M内存)。main 线程将消息发送给 RecordAccumulator,Sender 线程不断从 RecordAccumulator 中拉取消息发送到 Kafka Broker。
全栈程序员站长
2022/09/13
6380
Kafka设计解析-Kafka High Availability
Topic:每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
chengcheng222e
2021/11/04
3150
深入浅出Kafka(3):我的生命是如何运转的?
Kafka作为一个消息系统,为什么会如此受欢迎?消息系统在不同系统传输数据中扮演着非常重要的角色。让我们看看没有消息系统的数据管道会怎样?
double
2019/07/23
6250
深入浅出Kafka(3):我的生命是如何运转的?
Kafka快速入门(Kafka Broker)节点服役和退役、手动调整副本
(3)查看/kafka/brokers/topics/first/partitions/0/state 路径上的数据。
鱼找水需要时间
2023/02/16
9630
Kafka快速入门(Kafka Broker)节点服役和退役、手动调整副本
Kafka之集群架构原理
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/08/29
7200
Kafka之集群架构原理
2023携程面试真题
字符流:以字符为单位,每次次读入或读出是 16 位数据。其只能读取字符类型数据。
小马哥学JAVA
2023/07/15
2130
2023携程面试真题
Kafka设计解析(二)- Kafka High Availability (上)
http://www.jasongj.com/2015/04/24/KafkaColumn2/
Java后端技术
2018/08/09
3600
Kafka设计解析(二)- Kafka High Availability (上)
面试系列-kafka高可用机制
Kafka允许同⼀个Partition存在多个消息副本(Replica),每个Partition的副本通常由1个Leader及0个以上的Follower组成,⽣产者将 消息直接发往对应Partition的Leader,Follower会周期地向Leader发送同步请求,Kafka的Leader机制在保障数据⼀致性地同时降低了了 消息备份的复杂度; 同⼀Partition的Replica不应存储在同一个Broker上,因为一旦该Broker宕机,对应Partition的所有Replica都无法⼯作,这就达不到 高可用的效果。为了做好负载均衡并提⾼容错能力,Kafka会尽量将所有的Partition以及各Partition的副本均匀地分配到整个集群上;
用户4283147
2022/12/29
5260
面试系列-kafka高可用机制
Java基础面试题【分布式】Kafka
producer发送消息完,只等待lead写入成功就返回了,leader crash了,这时follower没来及同步,消 息丢失。
@派大星
2023/10/25
2980
Java基础面试题【分布式】Kafka
Kafka学习笔记之Kafka High Availability(下)
  本文在上篇文章基础上,更加深入讲解了Kafka的HA机制,主要阐述了HA相关各种场景,如Broker failover,Controller failover,Topic创建/删除,Broker启动,Follower从Leader fetch数据等详细处理过程。同时介绍了Kafka提供的与Replication相关的工具,如重新分配Partition等。
Jetpropelledsnake21
2019/09/30
6060
Kafka学习笔记之Kafka High Availability(下)
kafka实战教程(python操作kafka),kafka配置文件详解
应用往Kafka写数据的原因有很多:用户行为分析、日志存储、异步通信等。多样化的使用场景带来了多样化的需求:消息是否能丢失?是否容忍重复?消息的吞吐量?消息的延迟?
全栈程序员站长
2022/08/12
2.8K0
kafka实战教程(python操作kafka),kafka配置文件详解
你可能需要的Kafka面试题与部分答案整理
场景:数据比较集中且实时要求不是太高,如果同步处理,假如业务高峰需要4台服务支撑,那么在业务高峰过了之后,就会出现资源闲置,如果引入消息队列的话,将数据放到消息队列后直接返回成功,提升了响应时间,真正的业务在消息队列后面消费处理,可能2台服务就能够支撑的住,而且流量更加均匀。
大数据真好玩
2020/02/13
8810
Kafka详解
  Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、Storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。
忧愁的chafry
2022/10/30
1.3K0
Kafka详解
Kafka评传——从kafka的消息生命周期引出的沉思
kafka脱胎于雅虎项目,在现今的消息系统中,存在着举足轻重的意义。在笔者看来学习Kafka这款系统既有利于思考分布式消息队列的推演,也有利于发掘rabbitmq中的不足,以史为鉴可以知兴替,学习老大哥rabbitmq中的精华,摒弃其中的糟粕,提升下一代消息队列服务的性能,荣幸之至。
Yerik
2021/03/03
1.6K0
Kafka剖析系列之高可用(上)
Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务。若该Broker永远不能再恢复,亦或磁盘故障,则其上数据将丢失。而Kafka的设计目标之一即是提供数据持久化,同时对于分布式系统来说,尤其当集群规模上升到一定程度后,一台或者多台机器宕机的可能性大大提高,对Failover要求非常高。因此,Kafka从0.8开始提供High Availability机制。本文从Data Replication和
用户1263954
2018/01/30
5460
Kafka剖析系列之高可用(上)
Kafka 架构中 ZooKeeper 以怎样的形式存在?
Kafka 运行环境还需要涉及 ZooKeeper,Kafka 和 ZooKeeper 都是运行在 JVM 之上的服务。但是Kafka架构中 ZooKeeper 以怎样的形式存在?
码农架构
2021/03/10
2.4K0
Kafka 架构中 ZooKeeper 以怎样的形式存在?
Kafka的定义和安装与配置
定义:Kafka是一个基于zookeeper协调的分布式、多副本的(replica)、支持分区的(partition)系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、Storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写的项目。
Java廖志伟
2022/03/07
5730
Kafka的定义和安装与配置
相关推荐
入门篇!大白话带你认识 Kafka!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文