大数据之Kafka面试题总结

本文围绕Kafka展开,探讨了服务器可接受最大信息量、ZooKeeper作用及独立性、提高远程用户吞吐量方法等问题。还涉及数据生成一次性语义保证、broker离开ISR情况、消息投递保证机制、消息有序性及高吞吐原因等关键内容。

Kafka服务器可以接受最大的信息量是多少

100w字节

Kafka中ZooKeeper是什么,是否可以脱离ZK独立运行

zk是一个开放源码的高性能协调服务,用于kafka的分布式应用

不可以,不可以越过ZK直接联系kafka broker,一旦ZK停止工作,它就不能服务客户端的请求

zk主要用于集群中不同节点之间的通信,在kafka中,他被用于提交偏移量,因此节点失效了,可以从它之前提交的偏移量获取,此外,还有leader检测,分布式同步,配置管理,识别新节点,节点实时状态等功能

如何提高远程用户吞吐量

如果用户位于与broker不同的数据中心,则可能需要调优socket缓冲区的大小,以对长网络延迟进行摊销

在数据生成过程如何保证一次性语义

有两种方法

  1. 每个分区使用一个单独的写入器,每当发现一个网络错误,检查该分区中的最后一条消息,查看最后一次写入是否成功
  2. 在消息中包含一个主键(UUID或者其他),并在用户中进行反复制

broker什么时候离开ISR?

ISR是一组与leaders完全同步的消息副本,也就是说ISR中包含所有提交的消息,遇到故障,一个副本从leader中脱离出来,将会从ISR中删除.

Kafka为什么需要复制

确保任何已经发布的消息不会丢失,可以在机器错误,程序错误或者软件升级中使用

如果副本在ISR中停留很长时间表明什么

表明跟踪器无法像在leader收集数据那样快速获取数据

如果首选的副本不在ISR中会发生什么?

控制器将无法将leadership转移到首选的副本

请说明Kafka 的消息投递保证(deliveryguarantee)机 制以及如何实现?

Kafka支持三种消息投递语义

  1. 至多一次:消息可能会丢失

  2. 至少一次:消息可能会重复

  3. 精准一次:消息不会丢失和重复

    分为三个方向进行实现:分别是生产者,broker,消费者三个方面

    生产者:

    1. ack机制

      1. 0不关心响应
      1. 1默认的,等待leader确认信息
      2. -1(all)全部确认
    2. retries重试机制----默认为0,不重试

    3. 幂等性:

      1. 操作多次的结果和操作一次的结果是一样的(enable.idempotence=true)
      2. PID
      3. Snum
      4. 保证我们分区的精准一次性
    4. (全局)事务:read–process–write(kafka–程序–kafka)

    broker集群

    1. 分区机制针对topic进行分区–不同分区
    2. 副本机制

    消费者

    自己手动提交 存储在外部介质中 比如mysql

如何保证Kafka消息有序

只能保证在一个partition中消息被某个consumer消费时是顺序的,实际上无法保证全局有序,除非只有一个partition

kafka为什么能进行高吞吐

Kafka的设计是把所有消息都写到速度低容量大的硬盘中,换取更加强大的存储能力.但是实际上使用硬盘并没有带来过多的性能损失,kafka主要使用了:零拷贝,页缓存,日志追加.牵扯到Linux系统级别的缓存优化和通讯优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值