【kafka】消息队列

news2024/12/23 22:28:50

本文主要通过字节的团队的博客学习kafka,写的真不错:一键跳转

1.kafka的架构在这里插入图片描述
2.kafka的副本管理
在这里插入图片描述
3.日志同步管理
在这里插入图片描述
在这里插入图片描述
4.kafka快的原因?
批量处理、消息压缩、建立索引、分区、一致性、顺序写盘、页缓存、0拷贝
5.kafka怎么保证可靠?
从生产者的角度来说:使用确认机制,当发送消息后通过同步或者异步的方式直到成功接受才算发送成功,代替发后即忘的消息发送模式
从kafka来看:当消息被从leader同步到ISO集合的follower副本后再向生产者发送响应
从消费者的角度来看:为了防止代码异常对消费的影响取消自动应答,只有业务执行成功后再手动提交
6.讲讲延迟队列和死信队列
延迟队列:在kafka中创建一个消息队列,为队列设置延时时间,将消息推送到队列中打上时间戳,消息达到延时后自动被删除。面对一些有短暂延迟的场景和避免消息积压
死信队列:在kafka上创建消息队列,为队列设置过期时间,消息推送进队列打时间戳,消息超时或处理失败或者重试达到上限就加入死信队列
7.怎么保证消息消费的顺序?
乱序场景:①kafka一个topic,一个partition,一个consumer,但是consumer内部进行多线程消费,这样数据也会出现顺序错乱问题。②具有顺序的数据写入到了不同的partition里面,不同的消费者去消费,但是每个consumer的执行时间是不固定的,无法保证先读到消息的consumer一定先完成操作,这样就会出现消息并没有按照顺序执行,造成数据顺序错误。
解决:①确保同一个消息发送到同一个partition,一个topic,一个partition,一个consumer,内部单线程消费
②写N个内存queue,然后N个线程分别消费一个内存queue即可
8.怎么解决消息挤压的问题
提高消费者处理能力:增加分区数量、增加消费者数量、优化消费者逻辑:异步处理+批处理
修改消费者每次拉取的数量,减少消费者请求次数;
处理热点分区、扩展 Kafka 集群
控制消息生产速率
9.怎么解决消费重复的问题

  1. 启用幂等性后,生产者会分配一个唯一的 producerId,并对每条消息加上递增的 sequence number,Kafka 通过这两个信息检测并避免重复写入。
  2. Kafka 提供了事务支持,可以确保一组消息要么全部成功写入,要么全部失败回滚。这样可以保证消费者在读取时不会看到部分提交的数据,避免由于失败重试导致的重复消费问题。
  3. 消费者侧的去重通常通过外部存储(例如数据库或缓存系统)实现。常见的方法是为每条消息分配一个唯一的 key,在消费时记录已经处理过的消息 key,如果再次消费到相同 key 的消息,直接跳过处理
  4. 手动提交位移:在消费者成功处理消息之后,再手动提交位移,从而避免因故障重启导致的重复消费。
  5. 在消费者端实现幂等操作,即使重复消费同样的数据,也不会产生副作用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2123240.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++ Qt day10】

2、 完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和密码不匹配&am…

OCR在线识别网站现已上线!

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 如有侵犯,请联系作者下架 由作者亲自开发的ocr识别网站哈哈,暂时汇聚了三十多种验证码模型以及算法,欢迎各路朋友去尝试,网站地址如下 http://gbj5w3.natappfree.cc/ocr 验证码类型包括但…

【MADRL】反事实多智能体策略梯度法(COMA)算法

本篇文章是博主强化学习RL领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在强化学习专栏&#xff1…

前端开发的观察者模式

什么是观察者设计模式 观察者模式(Observer Pattern)是前端开发中常用的一种设计模式。它定义了一种一对多的依赖关系,使得当一个对象的状态发生改变时,其所有依赖对象都能收到通知并自动更新。观察者模式广泛应用于事件驱动的系…

56页PPT | 大数据决策分析平台怎么建设?经典实践方案推荐

一、现状和目标 企业用户现状:数据分散,利用率低,业务需求变化快但IT响应慢。 问题:数据展示不及时、不准确,缺乏深入分析工具,报表制作效率低下。 目标:建设统一的数据整合平台,…

四款数据恢复精灵好用之处及使用感受~

在数字化的时代,数据的重要性不言而喻;不慎删除重要文件、格式化磁盘后数据丢失、存储设备故障……这些情况都可能让我们痛心疾首;这时,数据恢复软件就显得尤为重要了,今天,就为大家介绍四款备受好评的数据…

服装|基于Java+vue的服装定制系统(源码+数据库+文档)

服装定制系统 目录 基于Javavue的服装定制系统 一、前言 二、系统设计 三、系统功能设计 系统功能实现 管理员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布…

Linux——redis主从复制、集群模式、哨兵模式

主从复制 部署至少两个redis的实例 // 提供数据冗余和备份 两个独立服务器两个虚拟机两个容器一个redis的master 节点可以有多个redis的replica 从节点, 而从节点也可以成为其他从节点的主节点 // 方便对于主复制架构进行扩展提供数据灾备,当red…

复赛总榜TOP1方案Champion Chasing Boy分享

关联比赛: 2020数字中国创新大赛—算法赛:智慧海洋建设 写在前面的话 大家好,我是 Champion Chasing Boy的DOTA,在队友 鱼遇雨欲语与余、 尘沙杰少、林有夕、嗯哼哼唧 的Carry下,最终在本届智能算法赛拿到了复赛总榜单Top1的成绩…

Java通过jna调用c++动态库

1、pom文件添加jna依赖 <dependency><groupId>net.java.dev.jna</groupId><artifactId>jna</artifactId><version>5.14.0</version></dependency> 2、注意问题 要实现Java调用C的动态库&#xff0c;需要使用"extern C&…

Script-server: 一款开源的脚本管理工具,为你的Python脚本提供一个直观的 Web UI

在日常工作中&#xff0c;我们经常会使用各种脚本来自动化任务&#xff0c;提升效率。但传统的脚本管理方式往往伴随着一些困扰&#xff1a;复杂的命令行操作、难以理解的脚本参数、缺乏直观的反馈等等。这些问题&#xff0c;让原本应该便捷的脚本管理变得繁琐。 Script-server…

Qt-QWidget的focusPolicy属性(20)

目录 描述 相关API 使用 描述 这里引入了焦点的概念&#xff0c;这个很重要&#xff0c;也是伴随后面介绍中的一个很重要的概念 拿魔兽世界来举例&#xff0c;如下我们在操作兵种的时候&#xff0c;需要先选中单位&#xff0c;然后才能对这些单位进行命令的下达 这一点在笔…

[极客大挑战 2019]Http

1、访问题目链接 2、查看页面源码发现一个Secret.php的跳转页面 3、访问Secret.php发现页面有提示&#xff0c;它说它不是来自这个网页 4、抓包修改来源 添加&#xff1a;Referer: https://Sycsecret.buuoj.cn 发送查看响应 5、修改User-Agent为&#xff1a;Syclover 6、添加X-…

Catia的插件不能调用CAA 的API问题

今天到客户实施Catia二开软件&#xff0c;发现在客户的电脑上调用CAA的API出现调用失败的问题。 根据经验&#xff0c;想到大概是用户电脑上的Catia授权有问题&#xff0c;但是Catia的一大堆授权中需要哪些授权呢&#xff0c;最后花了半天的时间使用二分法测试出&#xff0c;C…

产线工控安全之防勒索病毒杀手锏

在当今数字化时代&#xff0c;数据安全已成为企业运营中不可或缺的一部分。勒索病毒和内部泄密事件的频发&#xff0c;使得企业必须采取更为严格的安全措施来保护其关键数据和运营系统。苏州深信达网络科技推出的MCK主机加固解决方案&#xff0c;正是为了应对这些挑战而设计的。…

十三、创建Uss血条样式

一、控制StyleSheet 1、点击左上角USS文件&#xff08;创建&#xff09; 2、双击style里面的黄色progress-bar 3、在USS文件夹中添加代码实现 4、在主UI上有一个margin&#xff08;外&#xff09;和padding(里) 在Spacing中进行修改 5、只有文字可以在这里进行修改 6、在Atrib…

车载以太网之SOME/IP

整体介绍 SOME/IP(全称为:Scalable service-Oriented MiddlewarE over IP),是运行在车载以太网协议栈基础之上的中间件,或者也可以称为应用层软件。 ​发展历程 AUTOSAR 4.0 - 完成宝马SOME/IP消息的初步集成;AUTOSAR 4.1 - 支持SOME/IP-SD及其发布/订阅功能;AUTOSAR 4.…

自动驾驶相关的理论基础

本文主要参考论文《基于计算机视觉和深度学习的自动驾驶方法研究_白辰甲》&#xff0c;记录一些理论知识。 自动驾驶定义 自动驾驶是指车辆通过传感器感知周围环境&#xff0c;在没有人为干预的情况下&#xff0c;实时改变驾驶行为&#xff0c;完成驾驶任务。 基于计算机视觉…

在树莓派上构建和部署 Node.js 项目

探索在Raspberry Pi上构建和部署Node.js项目的最佳实践。通过我们的专业提示和技巧&#xff0c;克服常见挑战&#xff0c;使您的项目顺利运行。 去年圣诞节&#xff0c;我收到了一份极其令人着迷的礼物&#xff0c;它占据了我许多周末的时间&#xff0c;甚至让我夜不能寐。它就…

SpringBoot打包部署,打包成jar和war有所不同?

1. 我的一个springboot项目&#xff0c;用mvn install打包成jar&#xff0c;换一台有jdk的机器就直接可以用java -jar 项目名.jar的方式运行&#xff0c;没任何问题&#xff0c;为什么这里不需要tomcat也可以运行了&#xff1f; 2. 然后我打包成war放进tomcat运行&#xff0c;…