当前位置: 首页 > news >正文

消息中间件-面试题

MQ选择

一、Kafka

1、消息队列如何保证消息可靠性

  • 消息不重复
    • 生产者控制
    • 消费者幂等
  • 消息不丢失
    • 生产者发送,要确认broker收到并持久化
    • broker确认消费者消费完,再删除消息

2、kafka是什么

  • Kafka是一种高吞吐量、分布式、基于发布/订阅的消息中间件,是Apache的开源项目。
  • broker: Kafka服务器,负责消息存储和转发
  • topic:消息类别,Kafka按照topic来分类消息
  • partition: topic的分区,一个topic可以包含多个partition, topic 消息保存在各个partition上。offset:消息在日志中的位置,可以理解是消息在partition上的偏移量,代表该消息的唯一序号
  • Producer:消息生产者
  • Consumer:消息消费者
  • Consumer Group:消费者分组,每个Consumer必须属于一个group
  • Zookeeper:保存着集群 broker、 topic、 partition等数据;另外,还负责broker故障发现, partition leader选举,负载均衡等功能

3、kafka的架构

  • Producers(生产者):生产者将数据PUSH给broker

  • Consumers(消费者):因为Kafka代理是无状态的,这意味着消费者必须通过使用分区偏移来维护已经消耗了多少消息。消费者向broker拉取消息

  • Broker(代理):一台 kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个 broker 可以容纳多个 topic。

  • Topic :可以理解为一个队列,一个 Topic 又分为一个或多个分区

  • Consumer Group:这是 kafka 用来实现一个 topic 消息的广播(发给所有的 consumer)和单播(发给任意一个 consumer)的手段。一个 topic 可以有多个 Consumer Group

  • ZooKeeper:用于管理和协调broker。 

4、kafka的消费者是pull(拉)还是push(推)模式

相关文章:

  • 安宝特AR汽车行业解决方案系列1-远程培训
  • 量子计算:数据安全难题
  • java和javascript的区别与联系
  • 基于springboot实现的音乐网站
  • java项目 maven高级分模块设计
  • C++ new 和 malloc 的区别?
  • QT的UI入门
  • 2024牛客寒假算法基础集训营4
  • 新手搭建服装小程序全攻略
  • springMVC第一天
  • 统计zabbix指定日期内的告警数量
  • C陷阱和缺陷--第二章 “语法陷阱”
  • MyBatis---初阶
  • 【C语言】中的位操作符和移位操作符,原码反码补码以及进制之间的转换
  • Leetcode刷题笔记题解(C++):203. 移除链表元素
  • 网络传输文件的问题
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • ➹使用webpack配置多页面应用(MPA)
  • Angular4 模板式表单用法以及验证
  • docker容器内的网络抓包
  • gulp 教程
  • Logstash 参考指南(目录)
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • ReactNative开发常用的三方模块
  • Sublime Text 2/3 绑定Eclipse快捷键
  • TypeScript迭代器
  • 对JS继承的一点思考
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 手机端车牌号码键盘的vue组件
  • 字符串匹配基础上
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​卜东波研究员:高观点下的少儿计算思维
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #define,static,const,三种常量的区别
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (23)Linux的软硬连接
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (论文阅读30/100)Convolutional Pose Machines
  • (十五)使用Nexus创建Maven私服
  • (五)c52学习之旅-静态数码管
  • (一)插入排序
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .net framework4与其client profile版本的区别
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @Data注解的作用
  • @EnableWebMvc介绍和使用详细demo
  • [20150321]索引空块的问题.txt
  • [C# 开发技巧]如何使不符合要求的元素等于离它最近的一个元素
  • [CSS] 点击事件触发的动画