kafka相关面试点整理

这篇具有很好参考价值的文章主要介绍了kafka相关面试点整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

kafka的零拷贝原理:

如果需要将磁盘中内容发送到远程服务器, 有几个过程
kafka相关面试点整理,kafka,kafka,面试,分布式

内核空间到用户空间会发生切换。
read buffer和 socket Buffer之间切换。
应用程序可以不需要再从内核拷贝到用户程序,
同时也不用再从用户态拷贝到内核态。
可以提高io。
kafka相关面试点整理,kafka,kafka,面试,分布式


kafka如何避免重复消费?

kafka通过维护offset的值避免重复消费,
默认情况下, 客户端会自动向kafka的broker提交offset,
如果消费端宕机, 可能会导致offset没有提交, 从而产生重复消费。

还有一个可能, 就是patition balance的机制, 就是把消息均衡的分配给
多个消费者,
那么consumer会从partition中消费消息,
如果5分钟内没有来得及消费, 会导致patition的rebalance的情况,

解决方案:1.提高消费端处理性能, 避免触发rebalance.
可以用异步的方式来处理消息, 缩短单个消费的时长。

调整消息处理的超时时间,

减少一次性从broker上拉取数据的条数。

可以针对消息生成的md5值保存到mysql, 每次消费的时候去查一下,
是否消费过。


如何保证kafka消息不丢失?

1.producer端需要确保消息能够达到broker端, 并且实现消息的存储。
producer默认是采用异步发送消息的, 确保消息发送成功?
1.异步改同步
2.添加异步回调来确保
3. retries
2. 通过patition的副本机制以及ack机制
leader和follower的。
ack=0,
acks=1.
acks = -1,

3.consumer必须能够消费到消息,
通过调整offset的值来重新消费。


如何保证消息的顺序消费?

kafka中通过patition的分区机制来实现物理存储,
维护多个partition来实现消息的存储,
单个分区的存储和消费,
kafka只能是保证在一个分区内的消息顺序性。


kafka中的ISR是什么?

为啥要用ISR?
发送到kafka的消息, 实际上最终是以partion的物理形态存放到磁盘上。
kafka为了保证parition的可靠性, 增加了partition的副本机制,
副本集中存在leader partition和follow partition,
生产者发送消息的时候, 会将消息存放在leader partition里面,
然后再把消息复制到follow partition里面, 一旦leader挂了, 可以
从剩下的parition副本里面选举出新的leader.

副本数据的同步
新leader的选举,
都涉及到网络通信, in-sync-replica
同步效率不高的节点会被踢出isR列表,

避免数据的丢失, isr里面的副本数据一般都是和主线程是最接近的。


kafka中分片和topic的关系是什么?假如一个topic有4个分片, 那么启动3个消费者进程和6个消费者进程有什么区别?

在Kafka中,
分片(Partition)和Topic(主题)之间的关系是:
一个Topic可以被划分为多个分片。每个分片是Topic的一个逻辑划分,用于实现数据的水平拆分和并行处理。
假设一个Topic有4个分片:

启动3个消费者进程:

如果您启动了3个消费者进程,并且这些消费者订阅了同一个Topic,那么它们会一起协作地消费这个Topic的所有分区

在这种情况下,每个消费者进程会分配到其中一个分片,并且每个分片只有一个消费者进行消费。这样可以实现每个分区的消息有序消费
由于只有4个分片而启动了3个消费者进程,可能会导致某一个消费者进程多消费一个分片,而另一个分片没有被消费,从而导致一些消费者进程的负载较高,而其他消费者进程处于较空闲状态

启动6个消费者进程:

如果您启动了6个消费者进程,并且这些消费者订阅了同一个Topic,那么它们也会一起协作地消费这个Topic的所有分区
在这种情况下,每个消费者进程会尝试均匀地分配到其中一个分片,但由于分片数量是4个,可能会出现一些消费者进程没有被分配到分片的情况
由于启动了6个消费者进程,而只有4个分片,可能会导致有些消费者进程处于空闲状态,无法消费消息
需要注意的是,Kafka中消费者进程并不直接控制分片的分配,分片的分配是由Kafka集群中的消费者组(Consumer Group)来协调的。每个消费者组负责消费一个或多个Topic,并协调消费者进程与分片的关联。

为了充分利用分片和消费者的并行处理能力,您可以根据实际情况来确定合适的分片数量和消费者进程数量通常,消费者进程的数量可以大于分片的数量,但是过多的消费者进程可能会导致资源浪费和分区消费不均衡的问题


kafka如何保证顺序消费?

在 Kafka 中实现顺序消费是一种常见的需求,特别是在某些场景下,如保证消息处理的顺序性非常重要。Kafka 本身是一个分布式消息队列,它保证了在同一个分区内的消息有序性,但在多个分区的情况下,消费顺序可能无法得到保证。为了实现顺序消费,你可以采取以下策略:

  1. 单分区主题 (Single-Partition Topics):创建一个只有一个分区的主题,这样所有消息都会被发送到同一个分区,从而保证了消息的有序性。但要注意的是,这种方式会导致所有消息只能由一个消费者来处理,可能成为性能瓶颈。

  2. 保证生产者发送的顺序:在生产者端,可以使用指定的分区键(Partition Key)将相关消息发送到同一个分区,这样可以确保特定类型的消息被发送到同一个分区,从而保证消费的有序性。

  3. 单线程消费者:为了确保消息的顺序消费,消费者应该采用单线程处理消息,这样就可以保证消息在处理时的有序性。

  4. 手动提交位移:使用手动提交位移的方式,而不是自动提交,以便更好地控制消费的进度。这样可以确保消息在正确处理后再提交位移,从而避免重复消费和消息丢失。

  5. Consumer Group 内单实例消费者:将每个消费者实例放在一个单独的 Consumer Group 中,这样每个消费者实例都可以独立地从分区中消费消息,保证了消费的顺序。

需要注意的是,尽管以上策略可以在一定程度上实现顺序消费,但在 Kafka 中完全保证全局有序性是非常困难的,特别是在高吞吐量和高可用性的情况下。因此,在设计应用程序时,应该根据实际需求和场景权衡是否需要绝对的全局有序性。文章来源地址https://www.toymoban.com/news/detail-599610.html


到了这里,关于kafka相关面试点整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 存储、计算、分布式虚拟化篇(收集整理适合小白)

    超融合 硬件资源的统一管理 虚拟化 计算机资源最大化利用 桌面云 虚拟机上的桌面 虚拟桌面资源池 用户使用的云桌面虚拟机 虚拟应用资源池 应用虚拟化的虚拟机 处理器虚拟化 将一个物理的CPU虚拟成多个逻辑CPU供虚拟机使用 超线程技术 将多线程处理器内部的逻辑内核模拟

    2024年01月16日
    浏览(41)
  • 分布式配置中心Apollo中Namespace的类型整理

    Namespace类型有三种: 【1】私有类型 【2】公共类型 【3】关联类型(继承类型) 私有类型的Namespace具有private权限。例如上文提到的“application” Namespace就是私有类型。 1.介绍 公共类型的Namespace具有public权限。公共类型的Namespace相当于游离于应用之外的配置,且通过Namespace的

    2024年02月09日
    浏览(27)
  • 【分布式技术】消息队列Kafka

    目录 一、Kafka概述 二、消息队列Kafka的好处 三、消息队列Kafka的两种模式 四、Kafka 1、Kafka 定义 2、Kafka 简介 3、Kafka 的特性 五、Kafka的系统架构 六、实操部署Kafka集群  步骤一:在每一个zookeeper节点上完成kafka部署 ​编辑 步骤二:传给其他节点 步骤三:启动3个节点 kafka管理

    2024年01月23日
    浏览(42)
  • 分布式与微服务相关知识

    2024年02月11日
    浏览(33)
  • 存储、计算、分布式知识点思维导图(收集整理适合小白)

    IO技术 FC协议 光纤通道协议,为了解决I/O传输瓶颈对于整个存储系统带来的消极影响从而产生的光纤通道标准协议簇 iSCSI技术 一种专门为小型计算机系统设计的I/O技术又被成为小型计算机系统接口,通过网络由专门的服务器提供存储管理,已实现数据的远程存储,便于集中管

    2024年03月11日
    浏览(46)
  • 分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)

    什么是分布式 一个系统各组件分别部署在不同服务器。彼此通过网络通信和协调的系统。 也可以指多个不同组件分布在网络上互相协作,比如说电商网站 也可以一个组件的多个副本组成集群,互相协作如同一个组件,比如数据存储服务中为了数据不丢失而采取的多个服务备

    2024年04月11日
    浏览(39)
  • 分布式锁面试专题

    1 分布式锁 2 强推: 怎样实现redis分布式锁? 与大多数工具一样,分布式锁的选择需要根据业务场景确定。 比如在注重性能的场景,比如使用分布式锁 直接使用单机版但是能保证主从复制性质的redission分布式锁,是一种比较好的选择。 但是在注重安全的场景下,需要保证数

    2024年02月15日
    浏览(36)
  • 分布式系统架构中的相关概念

    1.1、衡量网站的性能指标 响应时间:指执行一个请求从开始到最后收到响应数据所花费的总体时间。 并发数:指系统同时能处理的请求数量。 并发连接数:指的是客户端向服务器发起请求,并建立了TCP连接。每秒钟服务器连接的总TCP数量 请求数:也称为QPS(Query Per Second) 指

    2024年04月26日
    浏览(34)
  • 【分布式应用】kafka集群、Filebeat+Kafka+ELK搭建

    主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection 错误,引发雪崩效应。 我们使用消息队列,通过异步处理请求,从而缓解系统的压力。消息队

    2024年02月16日
    浏览(28)
  • 分布式应用之Zookeeper和Kafka

    1.定义 2.特点 3.数据结构 4.选举机制 第一次选举 非第一次选举 5.部署 1.概念 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。 2.消息队列型 3.Web应用型(代理服务器) 1.为什么需要MQ 2.消息队列作用 3.消息队列模式 ①点对

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包