zoukankan      html  css  js  c++  java
  • 【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仍可扩展并确保消息的持久性。

    欢迎关注 Java架构师社区公众号.
    本文转载自Java架构师必看 ,更多内容点击查看!

  • 相关阅读:
    hdu 1175
    hdu 2197
    STL的学习
    数据结构之线性结构栈
    Linux下Fork与Exec使用
    散列技术之哈希
    检索之二分检索
    检索之顺序检索
    程序员该怎样放松?8个好网站推荐
    外部碎片和内部碎片的区别
  • 原文地址:https://www.cnblogs.com/mush/p/13994398.html
Copyright © 2011-2022 走看看