前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java高频面试题- 每日三连问?【Day33】 — Kafka篇(一)

Java高频面试题- 每日三连问?【Day33】 — Kafka篇(一)

作者头像
浩说编程
发布2022-04-12 14:21:42
3340
发布2022-04-12 14:21:42
举报
文章被收录于专栏:Java经验之谈

问题导读

一、说说Kafka 是什么?主要应用场景有哪些?

二、和其他消息队列相比,Kafka 的优势在哪里?

三、什么是 Producer、Consumer、Broker、Topic、Partition?

01

说说Kafka 是什么?主要应用场景有哪些?

正经回答:

Kafka 是一个分布式流式处理平台。

流平台具有三个关键功能:

 消息队列:发布和订阅消息流,这个功能类似于消息队列,这也是 Kafka 也被归类为消

息队列的原因。

 容错的持久方式存储记录消息流:Kafka 会把消息持久化到磁盘,有效避免了消息丢失

的风险。

 流式处理平台:在消息发布的时候进行处理,Kafka 提供了一个完整的流式处理类库。

Kafka 主要有两大应用场景:

 消息队列 :建立实时流数据管道,以可靠地在系统或应用程序之间获取数据。

 数据处理:构建实时的流数据处理程序来转换或处理数据流。

分享朋友圈,记录学习每一天~

02

和其他消息队列相比,Kafka 的优势在哪里?

正经回答:

我们现在经常提到 Kafka 的时候就已经默认它是一个非常优秀的消息队列了,我们也会经常拿它跟 RocketMQ、RabbitMQ 对比。

Kafka 相比其他消息队列主要的优势如下:

 极致的性能 :基于 Scala 和 Java 语言开发,设计中大量使用了批量处理和异步的思想,最高可以每秒处理千万级别的消息。

 生态系统兼容性无可匹敌 :Kafka 与周边生态系统的兼容性是最好的没有之一,尤其在大数据和流计算领域。

实际上在早期的时候 Kafka 并不是一个合格的消息队列,早期的 Kafka 在消息队列领域功能不完备并且有一些小问题比如丢失消息、不保证消息可靠性等等。

当然,这也和 LinkedIn 最早开发 Kafka 用于处理海量的日志有很大关系,本来最开始就不是为了作为消息队列,谁知道后面误打误撞在消息队列领域占据了一席之地。

03

什么是 Producer、Consumer、Broker、Topic、Partition?

正经回答:

Kafka 将生产者发布的消息发送到 Topic(主题) 中,需要这些消息的消费者可以订阅这些 Topic(主题)。

Kafka 比较重要的几个概念:

 Producer(生产者) : 产生消息的一方。

 Consumer(消费者) : 消费消息的一方。

 Broker(代理) : 可以看作是一个独立的 Kafka 实例。多个 Kafka Broker 组成一个Kafka Cluster。

 Topic(主题) : Producer 将消息发送到特定的主题,Consumer 通过订阅特定的Topic(主题) 来消费消息。

 Partition(分区) : Partition 属于 Topic 的一部分。一个 Topic 可以有多个 Partition ,并且同一 Topic 下的 Partition 可以分布在不同的 Broker 上,这也就表明一个 Topic 可以横跨多个 Broker 。

- End -

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浩说编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正经回答:
  • 正经回答:
  • 正经回答:
相关产品与服务
消息队列 CMQ 版
消息队列 CMQ 版(TDMQ for CMQ,简称 TDMQ CMQ 版)是一款分布式高可用的消息队列服务,它能够提供可靠的,基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)中的信息传递,存储在可靠有效的 CMQ 队列中,防止消息丢失。TDMQ CMQ 版支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档