消息中间件-面试题
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(推)模式
相关文章:
消息中间件-面试题
MQ选择 一、Kafka 1、消息队列如何保证消息可靠性 消息不重复 生产者控制消费者幂等消息不丢失 生产者发送,要确认broker收到并持久化broker确认消费者消费完,再删除消息2、kafka是什么 Kafka是一种高吞吐量、分布式、基于发布/订阅的消息中间件,是Apache的开源项目。broke…...
Python 将二维数组或矩阵变为三维
Python 将二维数组或矩阵变为三维 引言正文基础 拓展 引言 之前,我们已经介绍过了 Python 将一维数组或矩阵变为三维。然而,很多时候,我们也需要对二维矩阵进行操作,这里特来介绍一下如何将二维矩阵扩展为三维。 阅读这一篇前推…...
区块链与Solidity详细介绍及基本语法使用
一、区块链简介 区块链是一种分布式数据库技术,它以块的形式存储数据,并通过加密算法确保数据的安全性。每个块包含一系列交易,并通过哈希值与前一个块相连接,形成一个链式结构。这种结构使得数据难以被篡改,因为任何对…...
题目 1253: 老王赛马
题目描述: 赛马是一古老的游戏,早在公元前四世纪的中国,处在诸侯割据的状态,历史上称为“战国时期”。在魏国作官的孙膑,因为受到同僚庞涓的迫害,被齐国使臣救出后,到达齐国国都。 赛马是当时最受齐国贵族…...
【MATLAB源码-第144期】基于matlab的蝴蝶优化算法(BOA)无人机三维路径规划,输出做短路径图和适应度曲线。
操作环境: MATLAB 2022a 1、算法描述 蝴蝶优化算法(Butterfly Optimization Algorithm, BOA)是基于蝴蝶觅食行为的一种新颖的群体智能算法。它通过模拟蝴蝶个体在寻找食物过程中的嗅觉导向行为以及随机飞行行为,来探索解空间…...
地下管线管网三维建模工具MagicPipe3D V3.4.2发布
经纬管网建模系统MagicPipe3D,本地离线参数化构建地下管网三维模型(包括管道、接头、附属设施等),输出标准3DTiles服务、Obj模型等格式,支持Cesium、Unreal、Unity、Osg等引擎加载进行三维可视化、语义查询、专题分析&…...
糖尿病性视网膜病变(DR)的自动化检测和分期
糖尿病性视网膜病变(DR)的自动化检测和分期 提出背景DR的阶段及其特征 历年解法计算机视觉方法多分类方法 新的解法深度学习方法迁移学习大模型多模型集成全流程分析 总结特征1:图像分割特征2:疾病分级特征3:治疗建议生…...
C 标准库 - <errno.h>
在C语言编程中,<errno.h> 头文件扮演着至关重要的角色,它提供了一个全局变量 errno 以及一系列预定义宏,用于指示系统调用或库函数执行过程中发生的错误。这些宏有助于程序员诊断和处理运行时错误。 errno 变量 extern int errno;err…...
基于springboot+vue的房屋租赁管理系统(前后端分离)
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 主要内容:毕业设计(Javaweb项目|小程序|Pyt…...
Sora----打破虚实之间的最后一根枷锁----这扇门的背后是人类文明的晟阳还是最后的余晖
目录 一.Sora出道即巅峰 二.为何说Sora是该领域的巨头 三.Sora无敌的背后究竟有怎样先进的处理技术 1.Spacetime Latent Patches 潜变量时空碎片,建构视觉语言系统 2.扩散模型与Diffusion Transformer,组合成强大的信息提取器 3.DiT应用于潜变量时…...
C语言之static关键字详解
C语言之static关键字详解_c语言static-CSDN博客 1.变量 2.局部变量和全局变量 3.变量的作用域 4.变量的生命周期 二、static关键字的作用 三、static关键字修饰局部变量 四、static关键字修饰全局变量 五、static关键字修饰函数...
Redis高性能原理
redis大家都知道拥有很高的性能,每秒可以支持上万个请求,这里探讨下它高性能的原理。单线程架构和io多路复用技术。 一,单线程架构 单线程架构指的是命令执行核心线程是单线程的,数据持久化、同步、异步删除是其他线程在跑的。re…...
MSS与cwnd的关系,rwnd又是什么?
慢启动算法是指数递增的 这种指数增长的方式是慢启动算法的一个核心特点,它确保了TCP连接在开始传输数据时能够快速地探测网络的带宽容量,而又不至于过于激进导致网络拥塞。具体来说: 初始阶段:当TCP连接刚建立时,拥…...
解决两个MySQL5.7报错
目录 1.启动不了MySQL,报错缺少MSVCR120.dll去官网下载vcredist_x64.exe运行安装进入管理员CMD 2.本地计算机 上的 mysql 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止,Fatal error: Can‘t open and lock privilege tables: Table ‘…...
[OpenAI]继ChatGPT后发布的Sora模型原理与体验通道
前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言OpenAI体验通道Spacetime Latent Patches 潜变量时空碎片, 建构视觉语言系统…...
机器人初识 —— 电机传动系统
一、背景 波士顿动力公司开发的机器人,其电机传动系统是其高性能和动态运动能力的核心部分。电机传动系统通常包括以下几个关键组件: 1. **电动马达**:波士顿动力的机器人采用了先进的电动马达作为主要的动力源,如伺服电机或步进…...
安卓游戏开发之音频技术优劣分析
一、引言 在安卓游戏开发中,音频处理技术扮演着至关重要的角色,它不仅能够增强游戏的沉浸感和玩家体验,还能通过声音效果传达关键的游戏信息。以下将对几种常见的安卓游戏音频处理技术进行优劣分析,并结合应用场景来阐述其特点。 …...
在C语言中,设置Linux系统时间
C 语言中使用 mktime 函数和 stime 函数来处理时间。 处理之前,需要先获取当前的时间戳。并使用当前的时间戳生成struct tm,struct tm是C语言中用于表示日期和时间的结构体,通常用于在程序中操作和处理日期时间信息。它包含了以下成员变量&a…...
golang k8s包管理工具
k8s包管理工具Helm Helm简介Helm基础概念Helm安装Helm命令Helm Chart(图表)Chart语法Chart变量替换Chart模板控制结构Chart模板函数Chart迭代和范围Helm Values(值)Helm Release(发布)Helm Repository&…...
数字信号处理:傅里叶分析
本文主要参考视频如下: 数字信号处理9-1_线性时不变系统对复指数信号的响应_哔哩哔哩_bilibili 傅里叶分析的主要研究内容如下所示: 注意,计算机中使用的离散傅里叶变换并不是离散时间傅里叶变换; 前四种都是理论上的变换方式&…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...
【iOS】 Block再学习
iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...
命令行关闭Windows防火墙
命令行关闭Windows防火墙 引言一、防火墙:被低估的"智能安检员"二、优先尝试!90%问题无需关闭防火墙方案1:程序白名单(解决软件误拦截)方案2:开放特定端口(解决网游/开发端口不通)三、命令行极速关闭方案方法一:PowerShell(推荐Win10/11)方法二:CMD命令…...
ArcPy扩展模块的使用(3)
管理工程项目 arcpy.mp模块允许用户管理布局、地图、报表、文件夹连接、视图等工程项目。例如,可以更新、修复或替换图层数据源,修改图层的符号系统,甚至自动在线执行共享要托管在组织中的工程项。 以下代码展示了如何更新图层的数据源&…...
