Kafka面试题1

精心整理的 22道 Kafka 高频面试题(含答案),你都会了吗? 这篇文章是关于 Java 开发面试中 Apache Kafka 相关问题的精选汇总。涵盖了 Kafka 的基础知识与概念,包括其用途、核心组件概念、消息顺序与存储等;架构与设计,如集群工作原理、高可用与分区机制等;消费者与生产者,涉及消费消息方式、生产者可靠性配置等;性能与优化,包括影响性能因素、调优方法、批处理机制等;故障排查与安全性,如 Broker 宕机影响与恢复、集群监控诊断、安全特性与实施等。 阅读详情
什么是消息队列?

消息队列Message Queue,简称MQ。
是一种应用间的通信方式,主要由三个部分组成。

生产者:Producer
消息的产生者与调用端
主要负责消息所承载的业务信息的实例化是一个队列的发起方
代理:Broker
主要的处理单元
负责消息的存储、投递、及各种队列附加功能的实现
是消息队列最核心的组成部分
消费者:Consumer
一个消息队列的终端也是消息的调用端,具体是根据消息承载的信息,处理各种业务逻辑。

消息队列的应用场景较多,常用的可以分为三种:
在这里插入图片描述
应用解耦
应用解耦可以看作是把相关但耦合度不高的系统联系起来。比如订单系统与 WMS、EHR 系统,有关联但不哪么紧密,每个系统之间只需要把约定的消息发送到 MQ,另外的系统去消费即可。
解决了各个系统可以采用不同的架构、语言来实现,从而大大增加了系统的灵活性。
在这里插入图片描述
流量削峰
流量削峰一般应用在大流量入口且短时间内业务需求处理不完的服务中心,为了权衡高可用,把大量的并行任务发送到 MQ 中,依据MQ 的存储及分发功能,平稳的处理后续的业务,起到一个大流量缓冲的作用。

目前市面上常见的消息队列中间件主要有
ActiveMQ、RabbitMQ、Kafka、RocketMQ 这几种,

在架构技术选型的时候一般根据业务的需求选择合适的中间件:
比如中小型公司,低吞吐量的一般用 ActiveMQ、RabbitMQ 较为合适,大数据高吞吐量的大型公司一般选用 Kafka 和RocketMQ。

Kafka 基础架构

Producer:
消息生产者,就是向 Kafka broker 发消息的客户端。
Consumer:
消息消费者,向 Kafka broker 取消息的客户端。
Consumer Group(CG):
消费者组,由多个 Consumer 组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
Broker:
一台 Kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个 broker 可以容纳多个 topic。
Topic:
可以理解为一个队列,生产者和消费者面向的都是一个 topic。
Partiton:
为了实现拓展性,一个非常大的 topic 可以分布到多个 broker(即服务器)上,一个 topic 可以分为多个 Partition,每个 partition 都是一个有序的队列。
Replication:
副本,为保证集群中某个节点发生故障时,该节点上的 partition 数据不丢失,且 Kafka 仍然可以继续工作,Kafka 提供了副本机制,一个 topic 的每个分区都有若干个副本,一个 leader 和若干个 follower。
leader:
每个分区多个副本的 ”主“,生产者发送数据的对象,以及消费者消费数据时的对象都是 leader。
follower:
每个分区多个副本的 “从”,实时从 leader 中同步数据,保持和 leader 数据的同步。leader 发生故障时,某个 follower 会成为新的 leader。

2. kafka 的零拷贝原理?

在实际应用中,如果我们需要把磁盘中的某个文件内容发送到远程服务器上,那么它必须要经过几个拷贝的过程,如图(贴图)。
在这里插入图片描述
从磁盘中读取目标文件内容拷贝到内核缓冲区
CPU 控制器再把内核缓冲区的数据赋值到用户空间的缓冲区中
接着在应用程序中,调用 write()方法,把用户空间缓冲区中的数据拷贝到内核下的Socket Buffer 中。
最后,把在内核模式下的 SocketBuffer 中的数据赋值到网卡缓冲区(NIC Buffer)
网卡缓冲区再把数据传输到目标服务器上。
在这个过程中我们可以发现,数据从磁盘到最终发送出去,要经历 4 次拷贝,而在这四次拷贝过程中,有两次拷贝是浪费的,分别是:

从内核空间赋值到用户空间
从用户空间再次复制到内核空间
除此之外,由于用户空间和内核空间的切换会带来 CPU 的上线文切换,对于 CPU 性能也会造成性能影响。
而零拷贝,就是把这两次多于的拷贝省略掉,应用程序可以直接把磁盘中的数据从内核中直接传输给Socket,而不需要再经过应用程序所在的用户空间,如下图所示

在这里插入图片描述
零拷贝通过DMA(Direct Memory Access)技术把文件内容复制到内核空间中的Read Buffer,
接着把包含数据位置和长度信息的文件描述符加载到Socket Buffer 中,DMA 引擎直接可以把数据从内核空间中传递给网卡设备。
在这个流程中,数据只经历了两次拷贝就发送到了网卡中,并且减少了 2 次cpu 的上下文切换,对于效率有非常大的提高。

所以,所谓零拷贝,并不是完全没有数据赋值,只是相对于用户空间来说,不再需要进行数据拷贝。对于前面说的整个流程来说,零拷贝只是减少了不必要的拷贝次数而已。

在程序中如何实现零拷贝呢?

在Linux 中,零拷贝技术依赖于底层的sendfile()方法实现
在Java 中,FileChannal.transferTo() 方法的底层实现就是 sendfile() 方法。
除此之外,还有一个 mmap 的文件映射机制;
它的原理是:将磁盘文件映射到内存, 用户通过修改内存就能修改磁盘文件。使用这种方式可以获取很大的 I/O 提升,省去了用户空间到内核空间复制的开销。

3. Kafka 如何保证消息不丢失?

kafka 是一个用来实现异步消息通信的中间件,它的整个架构由Producer、 Consumer、Broker 组成。

在这里插入图片描述
3.1 Producer 端
首先是Producer 端,需要确保消息能够到达 Broker 并实现消息存储,在这个层面,有可能出现网络问题,导致消息发送失败,所以,针对Producer 端,可以通过 2 种方式来避免消息丢失

Producer 默认是异步发送消息,这种情况下要确保消息发送成功,有两个方法
a.把异步发送改成同步发送,这样producer 就能实时知道消息发送的结果。
b.添加异步回调函数来监听消息发送的结果,如果发送失败,可以在回调中重试。
Producer 本身提供了一个重试参数retries,如果因为网络问题或者 Broker 故障导致发送失败,Producer 会自动重试。
3.2 Broker 端
然后是Broker 端,Broker 需要确保Producer 发送过来的消息不会丢失,也就是只需要把消息持久化到磁盘就可以了。
(如图)但是,Kafka 为了提升性能,采用了异步批量刷盘的实现机制,也就是说按照一定的消息量和时间间隔来刷盘,而最终刷新到磁盘的这个动作,是由操作系统来调度的,所以如果在刷盘之前系统崩溃,就会导致数据丢失。

在这里插入图片描述
Kafka 并没有提供同步刷盘的实现,所以针对这个问题,需要通过Partition的副本机制和acks 机制来一起解决。

“我简单说一下 Partition 副本机制,它是针对每个数据分区的高可用策略,每个 partition 副本集包含唯一的一个 Leader 和多个 Follower,Leader 专门处理事务类的请求,Follower 负责同步Leader 的数据”。
在这样的一种机制的基础上,kafka 提供了一个acks 的参数,Producer 可以设置acks参数再结合Broker 的副本机制来个共同保障数据的可靠性。
acks 有几个值的选择。
acks=0, 表示producer 不需要等Broker 的响应,就认为消息发送成功,这种情况会存在消息丢失。
acks=1,表示Broker 中的Leader Partition 收到消息以后,不等待其他 Follower Partition 同步完,就给Producer 返回确认,这种情况下Leader Partition 挂了,会存在数据丢失。
acks=-1,表示Broker 中的Leader Parititon 收到消息后,并且等待 ISR 列表中的follower 同步完成,再给 Producer 返回确认,这个配置可以保证数据的可靠性。
3.3 Consumer
最后,就是Consumer 必须要能消费到这个消息,实际上,我认为,只要producer和broker 的消息可靠的到了保障,那么消费端是不太可能出现消息无法消费的问题,除非是Consumer 没有消费完这个消息就直接提交了,但是即便是这个情况,也可以通过调整offset 的值来重新消费。

4. Kafka 怎么避免重复消费?

首先,(如图)Kafka Broker 上存储的消息,都有一个Offset 标记。然后kafka 的消费者是通过 offSet 标记来维护当前已经消费的数据,
每消费一批数据,Kafka Broker 就会更新OffSet 的值,避免重复消费。
在这里插入图片描述
默认情况下,消息消费完以后,会自动提交 Offset 的值,避免重复消费。
Kafka 消费端的自动提交逻辑有一个默认的 5 秒间隔,也就是说在 5 秒之后的下一次向 Broker 拉取消息的时候提交。
所以在Consumer 消费的过程中,应用程序被强制 kill 掉或者宕机,可能会导致 Offset没提交,从而产生重复提交的问题。
除此之外,还有另外一种情况也会出现重复消费。

(如图)在Kafka 里面有一个Partition Balance 机制,就是把多个Partition 均衡的分配给多个消费者。
在这里插入图片描述
Consumer 端会从分配的Partition 里面去消费消息,如果 Consumer 在默认的 5 分钟内没办法处理完这一批消息。
就会触发Kafka 的Rebalance 机制,从而导致Offset 自动提交失败。
而在重新Rebalance 之后,Consumer 还是会从之前没提交的 Offset 位置开始消费,也会导致消息重复消费的问题。

基于这样的背景下,我认为解决重复消费消息问题的方法有几个:

提高消费端的处理性能避免触发Balance,比如可以用异步的方式来处理消息,缩短单个消息消费的市场。或者还可以调整消息处理的超时时间。还可以减少一次性从Broker 上拉取数据的条数。
可以针对消息生成md5 然后保存到 mysql 或者redis 里面,在处理消息之前先去 mysql 或者redis 里面判断是否已经消费过。这个方案其实就是利用幂等性的思想。

5. 什么是 ISR,为什么需要引入 ISR?

首先,发送到 Kafka Broker 上的消息,最终是以 Partition 的物理形态来存储到磁盘上的。
(如图)而Kafka 为了保证Parititon 的可靠性,提供了 Paritition 的副本机制,然后在这些Partition 副本集里面。存在Leader Partition 和Flollower Partition。
生产者发送过来的消息,会先存到 Leader Partition 里面,然后再把消息复制到 Follower Partition,
这样设计的好处就是一旦Leader Partition 所在的节点挂了,可以重新从剩余的 Partition 副本里面选举出新的 Leader。
然后消费者可以继续从新的 Leader Partition 里面获取未消费的数据。

在这里插入图片描述
在Partition 多副本设计的方案里面,有两个很关键的需求。

副本数据的同步
新Leader 的选举
这两个需求都需要涉及到网络通信,Kafka 为了避免网络通信延迟带来的性能问题,以及尽可能的保证新选举出来的Leader Partition 里面的数据是最新的,所以设计了 ISR 这样一个方案。

ISR 全称是 in-sync replica,它是一个集合列表,里面保存的是和 Leader Parition 节点数据最接近的 Follower Partition
如果某个Follower Partition 里面的数据落后 Leader 太多,就会被剔除 ISR 列表。
简单来说,ISR 列表里面的节点,同步的数据一定是最新的,所以后续的Leader 选举,只需要从ISR 列表里面筛选就行了。
所以,我认为引入ISR 这个方案的原因有两个:

尽可能的保证数据同步的效率,因为同步效率不高的节点都会被踢出 ISR 列表。
避免数据的丢失,因为 ISR 里面的节点数据是和 Leader 副本最接近的。以上就是我对这个问题的理解

6. Kafka 如何保证消息消费的顺序性?

首先,在 kafka 的架构里面,用到了 Partition 分区机制来实现消息的物理存储(如图),在同一个topic 下面,可以维护多个partition 来实现消息的分片。

在这里插入图片描述
生产者在发送消息的时候,会根据消息的 key 进行取模(如图),来决定把当前消息存储到哪个partition 里面。
并且消息是按照先后顺序有序存储到 partition 里面的。
在这里插入图片描述
在这种情况下,(如图),假设有一个topic 存在三个partition,而消息正好被路由到三个独立的partition 里面。
然后消费端有三个消费者通过 balance 机制分别指派了对应消费分区。因为消费者是完全独立的网络节点,
所有可能会出现,消息的消费顺序不是按照发送顺序来实现的,从而导致乱序的问题。

在这里插入图片描述
针对这个问题,一般的解决办法就是自定义消息分区路由的算法,然后把指定的key都发送到同一个 Partition 里面。(如图)
接着指定一个消费者专门来消费某个分区的数据,这样就能保证消息的顺序消费了。

在这里插入图片描述
另外,有些设计方案里面,在消费端会采用异步线程的方式来消费数据来提高消息的处理效率,那这种情况下,因为每个线程的消息处理效率是不同的,所以即便是采用单个分区的存储和消费也可能会出现无序问题,针对这个问题的解决办法就是在消费者这边使用一个阻塞队列,把获取到的消息先保存到阻塞队列里面,然后异步线程从阻塞队列里面去获取消息来消费。

在Java中,可以使用Kafka的消费者API来实现消息的顺序消费。以下是几种可以考虑的方法:

单个分区消费:创建一个单独的消费者实例来消费一个分区的消息。这样可以确保在单个分区内的消息按顺序消费。但是需要注意,如果有多个分区,不同分区的消息仍可能以并发方式进行消费。

指定分区消费:通过指定消费者订阅的特定分区,可以确保只消费指定分区的消息。这样,可以通过将相关消息发送到同一个分区来保证消息的顺序消费。

按键分区:Kafka允许根据消息的键(key)来决定将消息发送到哪个分区。如果消息的键是相同的,Kafka会将它们发送到同一个分区。因此,可以根据消息的键来保证消息的顺序消费。

无论选择哪种方法,都应该注意以下几点:

设置消费者的 max.poll.records 参数,确保每次拉取的消息数量合适,以避免因一次拉取的消息过多而导致处理速度过慢。
在消费者处理消息时,确保消息处理的逻辑是线程安全的。
监听消费者的 onPartitionsRevoked 事件,以便在重新分配分区时进行必要的清理和准备工作。
使用 auto.offset.reset 参数设置消费者的offset重置策略,以决定当消费者启动时从哪个offset开始消费。

7. Kafka 消息队列怎么保证 exactlyOnce,怎么实现顺序消费?

当我们向某个Topic 发送消息的时候,在 Kafka 的Broker 上,会通过Partition 分区的机制来实现消息的物理存储。
一个Topic 可以有多个Partition,相当于把一个 Topic 里面的N 个消息数据进行分片存储。
消费端去消费消息的时候,会从指定的Partition 中去获取。
在同一个消费组中,一个消费者可以消费多个Partition 中的数据。但是消费者的数量只能小于或者等于Partition 分区数量。
在这里插入图片描述
理解了Kafka 的工作机制以后,再来理解一下exactlyOnce 的意思,在MQ 的消息投递的语义有三种:

At Most Once: 消息投递至多一次,可能会丢但不会出现重复。
At Least Once: 消息投递至少一次,可能会出现重复但不会丢。
Exactly Once: 消息投递正好一次,不会出现重复也不会丢。
准确来说,目前市面上的MQ 产品,基本上都没有提供Exactly Once 语义的实现。我们只能通过一些其他手段来达到 Exactly Once 的效果。也就是确保生产者只发送一次,消费端只接受一次

生产者可以采用事物消息的方式,事务可以支持多分区的数据完整性,原子性。并且支持跨会话的exactly once 处理语义,即使 producer 宕机重启,依旧能保证数据只处理一次
开启事务首先需要开启幂等性,即设置 enable.idempotence 为true。然后对producer消息发送做事务控制。
如果出现导致生产者重试的错误,同样的消息,仍由同样的生产者发送多次,这个消息只被写到 Kafka broker 的日志中一次;
虽然生产者能保证在 Kafka broker 上只记录唯一一条消息,但是由于网络延迟的存在,有可能会导致 Broker 在投递消息给消费者的时候,触发重试导致投递多次。
所以消费端,可以采用幂等性的机制来避免重试带来的重复消费问题。
其次,关于实现顺序消费问题。
在Kafka 里面,每个Partition 分区的消息本身就是按照顺序存储的。
所以只需要针对 Topic 设置一个Partition,这样就保证了所有消息都写入到这一个 Partition 中。
而消费者这边只需要消费这个分区,就可以实现消息的顺序消费处理。

8. kafka 为啥是拉取消息而不是推送消息

Kafka是-种分布式流数据平台…被广泛应用王太规模的实时数据处理和消息传递系统中。作为一种高吞吐量、低延迟的消息系统,Kafka的消息拉取机制是其核心原理之一。

8.1 Kafka的消息拉取机制简介

Kafka的消息拉取机制是指消费者从Kafka集群中主动拉取消息的过程。相比于传统的发布-订阅模式中,由消息中间件主动推送消息给消费者,Kafka的消息拉取机制具有更高的灵活性和可控性。消费者可以根据自身的处理能力和需求主动拉取消息,从而实现更加高效的消息处理。

8.2 消息拉取的工作流程

8.2.1 消费者订阅主题
在使用Kafka的消息拉取机制之前,消费者需要先订阅一个或多个主题。主题是Kafka中消息的分类单位,可以看作是消息的容器。消费者通过指定主题来获取相应的消息。

8.2.2 拉取消息的偏移量

在拉取消息之前,消费者需要指定拉取消息的偏移量。偏移量可以理解为消息在主题中的位置信息,通过指定偏移量,消费者可以准确地获取指定位置的消息。Kafka提供了两种偏移量的管理方式:手动管理和自动管理。消费者可以根据需要选择适合的偏移量管理方式。

8.2.3 拉取消息

一旦订阅了主题并指定了偏移量,消费者就可以开始拉取消息了。消费者向Kafka集群发送拉取消息请求,Kafka集群根据请求返回相应的消息。Kafka支持按照时间戳、偏移量范围等方式进行消息拉取,消费者可以根据自身的需求选择合适的拉取方式。

8.2.4 处理消息

消费者获取到消息后,可以进行相应的处理。处理方式可以根据实际业务需求而定,例如存储到数据库、进行实时计算等。

8.2.5 提交偏移量

在消息处理完成后,消费者需要提交偏移量。偏移量的提交是为了记录消费者已经处理过的消息位置,以便下次拉取消息时能够继续从上次的位置开始。消费者可以选择手动提交偏移量或自动提交偏移量,具体方式根据实际情况而定。

面试题

1. Kafka 中的 Broker 是什么?

• Kafka 集群由多个 Broker 组成,Broker 是 Kafka 服务器,可以接收、存储和分发消息。

2. 解释一下 Kafka 的主题和分区?

• 主题是 Kafka 中消息的分类,类似于邮件的收件箱。分区是主题的子部分,用于水平扩展和提高性能。

3. Kafka 如何保证消息的顺序性?

• Kafka 可以通过保证单个分区内的顺序性来实现消息的顺序性,但在多个分区或消费者之间无法保证全局顺序。

4. 什么是 Kafka 的消费者组?它的作用是什么?

• 消费者组是多个消费者的集合,它们共同消费一个主题的消息,实现负载均衡和容错。

5. Kafka 的 Offset 是什么?它有什么作用?

• Offset 是每个消费者在每个分区上的消费位置标记,用于记录已经消费的消息位置。

6. 解释一下 Kafka 的 ISR(In-Sync Replicas)概念。

• ISR 是与 Leader 保持同步的副本集合,只有 ISR 中的副本才能参与投票和提供服务。

7. Kafka 中的消息格式是什么?

• Kafka 中的消息通常是以键值对的形式存储,键用于路由消息到对应的分区。

8. 如何设置 Kafka 的吞吐量和延迟?

• 可以通过调整分区数、生产者的批量大小、消费者的并发度等参数来优化吞吐量和延迟。

9. Kafka 如何处理故障和容错?

• Kafka 通过副本机制、Leader 选举、ISR 等特性来提供容错和故障恢复能力。

10. 解释一下 Kafka 的 ZooKeeper 在其中的作用。

• ZooKeeper 用于管理 Kafka 集群的元数据、Broker 注册、主题和分区的配置等。

面试必备:Kafka高频面试题及答案解析 在Kafka中,Leader选举是关键的机制,用于在分区的多个副本(Replicas)之间选举出一个领导者(Leader)。Kafka的Broker是Kafka架构中的一个核心组件,是一个独立的服务器节点,负责存储数据和处理客户端请求。生产者可以为消息指定一个键,Kafka根据键的哈希将消息路由到特定的分区。在一个消费者群组中,每个消费者负责读取特定分区的数据,确保每条消息只被群组内的一个消费者处理。Kafka中的"幂等性生产者"指的是能够保证即使在重试的情况下也不会产生重复消息的生产者。 阅读详情

相关推荐

一文讲透3GPP TS 36.104发射链路相关指标

3GPP是制定移动通信标准的国际组织,其36.104规范对LTE基站射频性能提出详细要求。规范主要涵盖七方面:1)基站输出功率分类标准;2)LTE信道带宽计算方法;3)TD-LTE特有的发射机关断功率及时延要求;4)信号质量指标(频率误差和EVM)及其影响因素;5)邻道泄漏比(ACLR)的45dBc标准;6)带内频谱辐射模板(OBUE)的噪声限制;7)9kHz-12.75GHz频段的带外杂散辐射要求。这些技术要求保障了LTE基站的射频性能和网络质量。

weixin_49761275的博客 4526

20道常见的kafka面试题以及答案

1、kafka的消费者是pull(拉)还是push(推)模式,这种模式有什么好处?2、kafka维护消息状态的跟踪方法3、zookeeper对于kafka的作用是什么?4、kafka判断一个节点还活着的有那两个条件?5、讲一讲 kafka 的 ack 的三种机制6、kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费?7、kafka 如何不消费重复数据?比如扣款,我们不能重复的扣。8、讲一下kafka集群的组成?9.........

日积月累,水滴石穿 11万+

BEV感知技术全景解析:从纯视觉到多传感器融合的实战指南

本文全面解析了自动驾驶中的BEV感知技术,从纯视觉到多传感器融合的实战应用。文章深入探讨了BEV如何提供“上帝视角”,对比了IPM、Lift-Splat-Shoot及Transformer等核心实现范式,并详细阐述了多传感器融合(尤其是中融合)的工程实践与优势,为开发者提供了从理论到原型搭建的完整指南。

win55的博客 1140

Kafka常见面试题

1.什么是消息中间件? 2.kafka 是什么?有什么作用? 3.kafka 的架构是怎么样的? 4.Kafka Replicas是怎么管理的? 5.如何确定当前能读到哪一条消息? 6.生产者发送消息有哪些模式? 7.发送消息的分区策略有哪些? 8.Kafka 支持读写分离吗?为什么? 9.那 Kafka 是怎么去实现负载均衡的? 10.Kafka 的负责均衡会有什么问题呢? 11.Kafka 的可靠性是怎么保证的? 12.Kafka 的消息消费方式有哪些? 13.分区再分配是做什么

qq_43338943的博客 2万+

医学影像弹性形变处理

这段代码的主要流程是:读取 DICOM 医学影像,尝试使用 MONAI 进行弹性形变(根据版本适配),如果失败则使用 OpenCV 实现,最后可视化并保存处理结果。这样可以在不同环境下灵活处理医学影像的弹性形变需求。后面会写一篇解释弹性变形方法的短文。

wh_xia_jun的专栏 779

Minitab正交试验设计:从入门到精通的完整指南

本文提供了一份使用Minitab进行正交试验设计的完整指南。从正交试验省时省力的原理讲起,详细介绍了在Minitab中创建正交表、填入数据、执行分析(包括解读ANOVA和P值)以及寻找最优参数组合的全流程。文章旨在帮助读者,特别是工艺优化和研发人员,快速掌握这一高效工具,从而用最少的实验次数锁定关键影响因素,提升工作效率与成果。

weixin_29201313的博客 465

32 道常见的 Kafka 面试题

最近很多粉丝后台留言问了一些大数据的面试题,其中包括了大量的 Kafka、Spark等相关的问题,所以我特意抽出时间整理了一些大数据相关面试题,本文是 Kafka 面试相关问题,其他系列面试题后面会陆续整理,欢迎关注过往记忆大数据公众号。 1、Kafka 都有哪些特点? 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。 •可扩展性:kafka集群支持热扩展 •

涂作权的博客 2万+

K8s入门教程(一)

本教程提供了Kubernetes(K8s)的入门指南,涵盖了从基础概念到实战操作的全面内容。首先介绍了Kubernetes的定义和核心功能,如自动化部署、弹性伸缩、自我修复等。接着,详细讲解了如何在macOS上安装Minikube和kubectl工具,以及如何使用这些工具创建和管理Pod、Deployment和Service等核心资源。教程还包括了实战案例,如部署Nginx应用,并介绍了高级特性如滚动更新和自动伸缩。最后,提供了常见问题的解决方案,帮助用户快速上手和解决实际使用中的问题。

2401_82505179的博客 1689

kafka面试题 1

kafka面试1

weixin_43924419的博客 881

R语言中的混淆矩阵(Confusion Matrix)是一种常用的评估多分类模型性能的工具

除了准确率,混淆矩阵还提供了其他有用的指标,如灵敏度(Sensitivity)、特异度(Specificity)、精确度(Precision)和召回率(Recall)。混淆矩阵通过比较模型预测结果与实际标签的一致性,帮助我们了解模型的分类准确性和错误类型。此外,混淆矩阵还提供了各种错误类型的统计信息,如假阳性(False Positive)和假阴性(False Negative)等。通过混淆矩阵,我们可以了解模型的整体性能和错误类型,从而对模型进行评估和改进。最后,为了更好地理解混淆矩阵的结果,可以使用。

HackSquad的博客 972

yolov8 PTQ和QAT量化实战(源码详解)

量化():是指将高精度浮点数(FP32)转换为低精度(8bit或4bit)整数的过程,它是模型部署中的一种非常重要的优化方法,可以在较少的精度损失下,大幅提供神经网络的效率和性能。目前主流的神经网络量化方式有PTQ和QATPTQ是训练后量化(),无需数据集和训练,直接量化模型权重QAT是量化感知训练(),量化后需要在数据集上继续微调训练。QAT过程中,我们首先需要选择哪些层需要进行finetune训练,并利用FP32对应层的输出作为监督进行训练。

@bangbang的博客 5327

kafka面试题1

用面试题串一串Kafka知识点,仅作自用

巴特勒船长~ 665

C#身份验证黑科技:用量子级加密与多维防御矩阵构建坚不可摧的用户管理系统!

某金融系统因身份验证漏洞导致200万用户数据泄露,量子级防御可将攻击面缩小99.99%。

墨夶的博客 353

Kafka面试题 part-1

ISR 是动态调整的,根据副本的同步状态和延迟情况而变化。1)生产者在发送3请求的时候,发生异常,发生异常需要重新发送,所以排在了后面,在进行落盘的时候,先落盘1,2 ,落盘3的时候发现是4,需要等,等到3出现为止,然后将 3,4 ,5排序,排序后再进行落盘。生产者发送的数据,单分区内可以做到有序,多分区,无法保证,除非把多个分区的数据拉到消费者端,进行排序,但这样做需要等,效率很低,还不如直接设置一个分区。每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是 Leader。

wadjdkdkdjjd的博客 1036

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

面试题篇-13-Kafka相关面试题_kafka面试题(1)

消息队列Message Queue,简称MQ。是一种应用间的通信方式,主要由三个部分组成。生产者:Producer消息的产生者与调用端主要负责消息所承载的业务信息的实例化是一个队列的发起方代理:Broker主要的处理单元负责消息的存储、投递、及各种队列附加功能的实现是消息队列最核心的组成部分消费者:Consumer一个消息队列的终端也是消息的调用端,具体是根据消息承载的信息,处理各种业务逻辑。异步处理主要应用于对实时性要求不严格的场景,

2401_84160087的博客 677

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Kafka 高频面试题(1)

自定义分区策略 跟DefaultPartitioner实现方式一样。spring.kafka.producer.properties.partitioner.class=配置类全路径@Component@Override}else {@Override@Override。

qq_41617316的博客 930

1.kafka面试题之零拷贝

Kafka 是一个高性能的分布式消息系统,它使用了多种优化技术来提高数据传输效率,其中之一就是 “零拷贝”(Zero Copy)。零拷贝技术可以显著减少数据在内存中的复制次数,从而提高 I/O 操作的效率,降低 CPU 使用率。以下是对 Kafka 零拷贝原理的详细介绍及其实现代码示例。

前端、移动端、后端源码级底层原理分享 981

Day238(1),快点来白嫖,kafka面试题1001kafka面试题

UsernamePasswordAuthenticationFilter继承自抽象类AbstractAuthenticationProcessingFilter,该抽象类定义了验证成功与验证失败的处理方法。

m0_57473261的博客 702

Kafka介绍+常见面试题公布!(1)

做任何事情都要用心,要非常关注细节。看起来不起眼的、繁琐的工作做透了会有意想不到的价值。当然要想成为一个技术大牛也需要一定的思想格局,思想决定未来你要往哪个方向去走, 建议多看一些人生规划方面的书籍,多学习名人的思想格局,未来你的路会走的更远。更多的技术点思维导图我已经做了一个整理,涵盖了当下互联网最流行99%的技术点,在这里我将这份导图分享出来,以及为金九银十准备的一整套面试体系,上到集合,下到分布式微服务《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》

2401_84049061的博客 831

高性能 Kafka 及常见面试题(1)

如上图所示,Producer 使用push模式将消息发布到 broker,Consumer 使用pull模式从 broker 订阅并消费消息。Kafka 通过 Zookeeper 管理集群配置,选举 leader,以及在 Consumer Group 发生变化时进行rebalance。

2301_76379606的博客 621

大数据面试题之Kafka(1)

大数据面试之Kafka(1)

自律给我自由 285

2024年最新面试题篇-13-Kafka相关面试题_kafka面试题(1),2024年最新2024大数据开发面试心得

消息队列Message Queue,简称MQ。是一种应用间的通信方式,主要由三个部分组成。生产者:Producer消息的产生者与调用端主要负责消息所承载的业务信息的实例化是一个队列的发起方代理:Broker主要的处理单元负责消息的存储、投递、及各种队列附加功能的实现是消息队列最核心的组成部分消费者:Consumer一个消息队列的终端也是消息的调用端,具体是根据消息承载的信息,处理各种业务逻辑。异步处理主要应用于对实时性要求不严格的场景,

2401_84586572的博客 1616
上一篇: juc笔记 3
下一篇: juc 笔记 4
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值