Java开发面试题,kafka查看topic积压

1、背景

首先,让我们简要地讨论下每个系统,以了解它们的高级设计和架构,看下每个系统所做的权衡。

Kafka 是一个开源的分布式事件流处理平台,也是 Apache 软件基金会下五个最活跃的项目之一。在其核心,Kafka 被设计成一个多副本的分布式持久化提交日志,用于支撑事件驱动的微服务或大规模流处理应用程序。客户端向代理集群提供事件或使用代理集群的事件,而代理会向底层文件系统写入或从底层文件系统读取事件,并自动在集群中同步或异步地复制事件,以实现容错性和高可用性。

Pulsar 是一个开源的分布式发布 / 订阅消息系统,最初是服务于队列用例的。最近,它又增加了事件流处理功能。Pulsar 被设计为一个(几乎)无状态代理实例层,它连接到单独的 BookKeeper 实例层,由它实际地读取 / 写入消息,也可以选择持久地存储 / 复制消息。Pulsar 并不是唯一的同类系统,还有其他类似的消息传递系统,如 Apache DistributedLog 和 Pravega,它们都是在 BookKeeper 之上构建的,也是旨在提供一些类似 Kafka 的事件流处理功能。

BookKeeper 是一个开源的分布式存储服务,最初是为 Apache Hadoop 的 NameNode 而设计的预写日志。它跨服务器实例 bookies,在 ledgers 中提供消息的持久存储。为了提供可恢复性,每个 bookie 都会同步地将每条消息写入本地日志,然后异步地写入其本地索引 ledger 存储。与 Kafka 代理不同,bookie 之间不进行通信,BookKeeper 客户端使用 quorum 风格的协议在 bookie

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面试涉及JavaKafka相关的问题时,以下是一些常见的Java Kafka面试题目: 1. Kafka是什么?它的主要特点是什么? - Kafka是一个分布式流处理平台,用于高吞吐、低延迟的数据传输和处理。 - 它的主要特点包括高性能、可扩展性、持久性、容错性和可靠性。 2. Kafka的消息发布和订阅模型是怎样的? - Kafka的消息发布和订阅模型是基于主题(topic)的。生产者(producer)将消息发布到一个或多个主题,而消费者(consumer)则从一个或多个主题订阅消息。 3. 在Java中如何使用Kafka的生产者API发送消息? - 使用Kafka的生产者API,可以通过创建一个Producer实例,并使用send()方法发送消息到指定的主题。 4. 在Java中如何使用Kafka的消费者API接收消息? - 使用Kafka的消费者API,可以通过创建一个Consumer实例,并使用subscribe()方法订阅一个或多个主题。后使用poll()方法来获取消息。 5. 如何保证Kafka消息的可靠性? - Kafka通过将消息持久化到磁盘和复制到多个副本来保证消息的可靠性。生产者可以选择等待所有副本都写入成功后再认为消息发送成功。 6. Kafka的分区是什么?如何确定消息被发送到哪个分区? - Kafka的分区是物理上的概念,用于对消息进行水平拆分和并行处理。每个主题可以被分为多个分区。 - 消息被发送到哪个分区是根据生产者在发送消息时指定的键(key)来决定的。Kafka使用哈希算法来将键映射到特定的分区。 这些是一些Java Kafka面试题目,涵盖了Kafka的基本概念和使用方式。希望对您有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值