• Java架构师技能点面试题汇总消息队列面试题


    1、什么是消息队列?
    消息队列,是分布式系统中重要的组件。

    • 主要解决应用耦合,异步消息,流量削锋等问题。
    • 可实现高性能,高可用,可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。

    目前主流的消息队列有:

    • Kafka
    • RabbitMQ
    • RocketMQ ,老版本是 MetaQ 。
    • ActiveMQ ,目前用的人越来越少了。

    另外,消息队列容易和 Java 中的本地 MessageQueue 搞混,所以消息队列更多被称为消息中间件、分布式消息队列等等。

    二、消息队列由哪些角色组成?
    如下图所示:
    image.png

    • 生产者(Producer):负责产生消息。
    • 消费者(Consumer):负责消费消息
    • 消息代理(Message Broker):负责存储消息和转发消息两件事情。其中,转发消息分为推送和拉取两种方式。

    1. 拉取(Pull),是指 Consumer 主动从 Message Broker 获取消息
       2. 推送(Push),是指 Message Broker 主动将 Consumer 感兴趣的消息推送给 Consumer 。

    三、消息队列有哪些使用场景?

    一般来说,有下面使用场景:

    • 应用解耦
    • 异步处理
    • 流量削峰
    • 消息通讯
    • 日志处理

    其中,应用解耦、异步处理是比较核心的

    四、Kafka的面试题

    1**.Apache Kafka 是什么?**

    Kafka 是基于发布与订阅消息系统。它最初由 LinkedIn 公司开发,之后成为 Apache 项目的一部分。Kafka 是一个分布式的,可分区的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。

    在大数据系统中,常常会碰到一个问题,整个大数据是由各个子系统组成,数据需要在各个子系统中高性能、低延迟的不停流转。传统的企业消息系统并不是非常适合大规模的数据处理。为了同时搞定在线应用

    (消息)和离线应用(数据文件、日志),Kafka 就出现了。Kafka 可以起到两个作用:

    ①   降低系统组网复杂度。

    ②   降低编程复杂度,各个子系统不在是相互协商接口,各个子系统类似插口插在插座上,Kafka 承担高速数据总线的作用。

    2.Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么?

    ISR:In-Sync Replicas 副本同步队列

    AR:Assigned Replicas 所有副本

    ISR是由leader维护,follower从leader同步数据有一些延迟(包括延迟时间replica.lag.time.max.ms和延迟条数replica.lag.max.mes

  • 相关阅读:
    举例说明论文降重查重的技巧
    【Android实战】Bitmap图片的截屏、模糊处理、传递、使用
    【关于运维和网工的差别,一文说透】
    关于IDO代币预售模式系统开发程序逻辑丨代币合约挖矿dapp系统开发模式讲解分析(代码呈现)
    LeetCode题:1:两数之和
    这几款抠图工具效果很好,朋友们不要错过
    拿到第一个用户并提权
    Window添加命令别名的方法
    弹性盒子自动换行小Demo
    vantajs使用
  • 原文地址:https://blog.csdn.net/m0_54850604/article/details/126629592