【18】进大厂必须掌握的面试题-15个Kafka面试
1.什么是Kafka?
Wikipedia将Kafka定义为“由 Scala编写的Apache软件基金会开发的开源消息代理项目 ,并且是一个分布式的发布-订阅消息系统。
| 特征 | 描述 | 
|---|---|
| 高吞吐量 | 使用适度的硬件支持数百万条消息 | 
| 可扩展性 | 高度可扩展的分布式系统,无停机 | 
| 复写 | 消息在整个群集中复制,以为多个订户提供支持,并在发生故障时平衡使用方 | 
| 持久性 | 提供对消息到磁盘的持久性的支持 | 
| 流处理 | 与Apache Spark&Storm等实时流应用程序一起使用 | 
| 数据丢失 | 具有正确配置的Kafka可以确保零数据丢失 | 
2.列出Kafka中的各个组件。
Kafka的四个主要组成部分是:
- 主题–属于同一类型的消息流
 - 生产者–可以将消息发布到主题
 - 代理–一组用于存储发布消息的服务器
 - 消费者–订阅各种主题并从经纪人处提取数据。
 
3.解释偏移量的作用。
分区中包含的消息被分配一个唯一的ID号,称为偏移号。偏移量的作用是唯一标识分区中的每个消息。
4.什么是消费群体?
消费者群体是Kafka独有的概念。每个Kafka消费者群体都由一个或多个共同组成一组订阅主题的消费者组成。
5. ZooKeeper的作用是什么?
Kafka使用Zookeeper来存储特定使用者组针对特定主题和分区使用的消息的偏移量。
6.是否可以在没有ZooKeeper的情况下使用Kafka?
不可以,不能绕过Zookeeper并直接连接到Kafka服务器。如果由于某种原因ZooKeeper关闭,您将无法处理任何客户端请求。
7.领导者和跟随者是什么意思。
Kafka中的每个分区都有一个充当领导者角色的服务器,没有一个或多个充当追随者的服务器。领导者执行对分区的所有读写请求的任务,而跟随者的作用是被动复制领导者。如果领导者失败,一名跟随者将担任领导者的角色。这样可以确保服务器的负载平衡。
8.副本服务器和ISR扮演什么角色?
副本实际上是一个节点列表,这些节点将复制特定分区的日志,而不管它们是否扮演领导者的角色。另一方面,ISR代表同步副本。它实质上是一组同步到领导者的消息副本。
9.为什么复制在Kafka中至关重要?
复制可确保发布的消息不会丢失,并且在发生任何机器错误,程序错误或频繁的软件升级时都可以使用。
10.如果副本长时间不在ISR中,则表示什么?
这意味着跟随者无法获取与领导者积累的数据一样快的数据。
11.启动Kafka服务器的过程是什么?
由于Kafka使用ZooKeeper,因此必须初始化ZooKeeper服务器,然后启动Kafka服务器。
- 要启动ZooKeeper服务器:> bin / zookeeper-server-start.sh config / zookeeper.properties
 - 接下来,启动Kafka服务器:> bin / Kafka-server-start.sh config / server.properties
 
12.如何定义分区键?
在生产者中,分区键的作用是指示消息的目标分区。默认情况下,基于散列的分区程序用于确定给定键的分区ID。或者,用户也可以使用自定义分区。
13.在生产者中,什么时候发生QueueFullException?
当生产者尝试以代理无法处理的速度发送消息时,通常会发生QueueFullException。由于生产者没有阻止,用户将需要添加足够的代理来协作处理增加的负载。
14.解释Kafka Producer API的角色。
Kafka的Producer API的作用是包装两个生产者– Kafka.producer.SyncProducer和Kafka.producer.async.AsyncProducer。目标是通过单个API向客户端公开所有生产者功能。
15. Kafka和Flume之间的主要区别是什么?
即使两者都用于实时处理,Kafka仍可扩展并确保消息的持久性。
【18】进大厂必须掌握的面试题-15个Kafka面试的更多相关文章
- 【16】进大厂必须掌握的面试题-100个python面试
		
我们整理了Python面试的主要问题清单,分为7个部分: 基本面试问题 OOPS面试问题 基本的Python程序 Python库面试问题 数据分析面试题 选择题(MCQ) 基本的Python面试问题 ...
 - 【17】进大厂必须掌握的面试题-50个Angular面试
		
我们整理了一份主要的Angular面试问题清单,分为三部分: 角度面试问题–初学者水平 角度面试问题–中级 角度面试问题–高级 初学者水平–面试问题 1.区分Angular和AngularJS. 特征 ...
 - 【5】进大厂必须掌握的面试题-Java面试-spring
		
spring面试问题 Q1.什么是spring? Spring本质上是一个轻量级的集成框架,可用于用Java开发企业应用程序. Q2.命名Spring框架的不同模块. 一些重要的Spring Fram ...
 - 【4】进大厂必须掌握的面试题-Java面试-jdbc
		
1.什么是JDBC驱动程序? JDBC驱动程序是使Java应用程序与数据库进行交互的软件组件.JDBC驱动程序有4种类型: JDBC-ODBC桥驱动程序 本机API驱动程序(部分为Java驱动程序) ...
 - 【7】进大厂必须掌握的面试题-Java面试-Jsp
		
1. jsp的生命周期方法是什么? 方法 描述 公共无效的jspInit() 与servlet的init方法相同,仅被调用一次. 公共无效_jspService(ServletRequest requ ...
 - 【8】进大厂必须掌握的面试题-Java面试-异常和线程
		
Q1.错误和异常有什么区别? 错误是在运行时发生的不可恢复的情况.如OutOfMemory错误.这些JVM错误无法在运行时修复.尽管可以在catch块中捕获错误,但是应用程序的执行将停止并且无法恢复. ...
 - 【9】进大厂必须掌握的面试题-DevOps面试
		
Q1.DevOps和Agile之间的根本区别是什么? 下表中列出了两者之间的差异. 特征 DevOps--开发运维 Agile--敏捷 敏捷 开发和运营中的敏捷性 只有发展才能敏捷 流程/实践 涉及C ...
 - 秋招进大厂其实也就那么回事,你会这样卡进大厂的BUG吗?
		
在BAT这种大厂里,只要肯吃苦,技术和工资进步的速度会超出你想象,我在上海,按当前价格算,一般在大厂里干个三四年,好歹房子的首付应该能有,而且这种房子还不是太偏远太小的. 进大厂确实需要一定的实力,但 ...
 - 《我想进大厂》之mysql夺命连环13问
		
想进大厂,mysql不会那可不行,来接受mysql面试挑战吧,看看你能坚持到哪里? 1. 能说下myisam 和 innodb的区别吗? myisam引擎是5.1版本之前的默认引擎,支持全文检索.压缩 ...
 
随机推荐
- 多测师讲解 _requests安装问题解决_高级讲师肖sir
			
步骤一:"dos下新建一个pip文件,在文件下建一个pip.ini 文件,步骤二:文件中内容[global]index-url=http://mirrors.aliyun.com/pypi/ ...
 - 记录一次源码扩展案列——FastJson自定义反序列化ValueMutator
			
背景:曾经遇到一个很麻烦的事情,就是一个json串中有很多占位符,需要替换成特定文案.如果将json转换成对象后,在一个一个属性去转换的话就出出现很多冗余代码,不美观也不是很实用. 而且也不能提前在j ...
 - web中的HTML CSS
			
HTML 超文本标记语言 页面的结构 首行声明文档类型>根标记>头部标记/主体标记 标记 div 布局 切割 分割 划分区域 spa ...
 - MeteoInfo脚本示例:读取FY3A AOD HDF文件
			
FY3A卫星有AOD产品数据,HDF格式,这里示例用MeteoInfo脚本程序读取和显示该类数据. 脚本程序如下: #----------------------------------------- ...
 - day22 函数整理
			
# 1.计算 年月日时分秒 于现在之间差了多少 格式化时间 # 现在 # 某一个年月日时分秒 参数 # import time # def get_time(old_t,fmt = '%Y-%m-%d ...
 - 写给前端同学的C++入门教程(一):概述和环境搭建
			
说明:本人是前端er,因为最近对 UE4(一个游戏开发引擎)产生了兴趣,而这个引擎源开发游戏时需要用到 C++ ,所以就开始入坑 C++ 了.现将自己学习 C++ 的笔记整理并分享出来,以便一些想入门 ...
 - python+selenium 爬取中国工业园网
			
import math import re import requests from lxml import etree type = "https://www.cnrepark.com/g ...
 - 【Azure DevOps系列】Azure DevOps使用Docker将.NET应用程序部署在云服务器
			
Docker持续集成 本章我们要实现的是通过我们往代码仓库push代码后,我们将每次的push进行一次docker自动化打包发布到docker hub中,发布到之后我将进行部署环节,我们将通过ssh方 ...
 - 来自朋友最近阿里、腾讯、美团等P7岗位面试题
			
来自年初和最近朋友的大厂面试题. 阿里巴巴 对象如何进行深拷贝,除了clone happen-before原则 jvm调优的实践 单例对象会被jvm的gc时回收吗 redis如果list较大,怎么优化 ...
 - Linux服务器部署redis常见问题处理
			
redis开启和禁用登陆密码校验 1. 开启登陆密码校验 在redis-cli命令行工具中执行如下命令: config set requirepass yourpassword2. 禁用登陆密码校验 ...