kafka、rocketMQ
kafka分布式架构下上下游两个微服务通信性能不匹配的话比如上游的QPS是200下游QPS只有100那么此时上游和下游之间以联机接口的方式通信就会把下游给打垮。没有什么是加一层不能解决的尤其是这种平衡二者速度的问题如果是写场景就加队列如果是读场景就加缓存计算机领域的常规操作啦。1、高性能加了消息队列以后本质上是一个生产者消费者模型并且属于多生产者多消费者模型我们知道按照生产者消费者模型的规则同一时刻最多只能有一个生产者/消费者来访问临界资源除非临界资源划分了槽位那就可以把并发粒度控制在每个槽位。首先按照Topic划分槽位这样并发粒度就可以是Topic级别进一步每个topic内部再划分patition这样并发的粒度又精细化到了patition。2、高可用备份我们直接按照最小的单位patition去说就像谈论k8s的时候最常提及的就是最小的单位podpatition不能只有一份一定要有副本patition越来越多肯定不能都部署在同一个服务上所以就要划分broker把patition打散分布在不同broker上并且patition的本体和副本不在同一个broker上这样防止一个broker崩了patition的本体和副本全崩了。说到这里你应该就发现了kafka实现高可用不是redis、MySQL那样的主从集群kafka的备份粒度不是一整台MySQL服务器而是patition。持久化再就是要持久化到磁盘目的后面再来补充//todo3、消费者组因为一个topic不止被一个下游服务消费比如说有个订单的topic既要被扣减库存的服务消费又要被增加积分的服务消费但是二者消费的进度不一样可能扣减库存的服务已经消费到offset9的位置了增加积分的服务比较慢才消费到offset3的位置。既然大家对于同一个topic的消费速度不一样就只能划分组。4、zookeeper组件太多了每个组件都有自己的状态所以需要有一个统一来管理维护的角色——分布式协调服务。rocketMQ对于rocketMQ不需要从0到1去学聪明的做法是跟kafka对比着去学主要是两点在架构上做了减法在功能上做了加法。在架构上做了减法去掉zookeeper采用轻量级的nameserver服务。因为zookeeper其实很强大可以实现名字服务、分布式锁、配置管理等等但是kafka只用到了名字服务这个功能属于杀鸡用牛刀后来kafka的开发者也意识到了这个问题所以新版的kafka去掉了zookeeper改用Raft算法。底层存储逻辑变了提升写入速度。kafka存储patition的时候给每个patition划分成多个segment每个segment对应磁盘里的一个文件每个文件里是顺序写。但是随着patition的增多这个文件写一下那个文件写一下顺序写逐渐“收敛”到了随机写。所以rocketMQ索性维护一个大文件在这个大文件里顺序写然后每个patition里维护索引指向大文件读的时候读两次有点“回表”的感觉哈在功能上做了加法新增了定时消息比如你12点下单晚上17点的预定外卖可能16:00的时候rocketMQ才会推给商家服务。下面是2023年写的理解不够一、消息队列的流派有broker的MQ重Topic必须有topic kafka轻Topic无broker的MQ二、kafka基本概念三、demo——生产者和消费者——单机官方demo;:Apache Kafka消费者有两种消费的方式如下就像我们进群一样有的刚进来以后只能看见进群之后的消息有的可以看到全部历史群聊。既然“历史群聊”也可以被看见那就说明消息不是和socket通信一样发完以后关掉server和client就没有了的而是被保存了下来。对的以日志的形式保存在kafka服务器上。具体位置可以自己指定。有个问题“历史聊天记录”太多多达几个T一个磁盘放不下怎么办这就引出了Topic分区。3.1 Topic分区除了能让磁盘放下之外分区还有一个好处。之前只放在一个文件的时候一次只能有一个producer去写这个文件但是分区以后 读写可以并行了如何指定创建几个分区把一个topic分成几个区在创建topic的时候用命令参数--partitions 去指定3.2 单播和多播其实是一个东西单播对于同一个consumerGroup里订阅了同一个topic的消费者们只有一个consumer能收到producer发送的消息而且是最新加入的那个consumer。PS:consumer1和consumer2在一个组里运行时指定的截图的时候可能被挡住了多播不同的consumerGroup组订阅同一个topic那么每个组里只有一个consumer能收到消息。四、搭建kafka集群以3个brokerkafka节点的集群为例这里我们用3个端口代表3个节点就不开3个服务器了要新建3个server.properties文件然后启动3个节点有了集群以后创建topic的时候可以指定生成副本也就是备份一共有3个节点也就可以有3个备份。而且kafka会自动指定哪个节点作为leaderleader可以理解为MySQL主从复制的master以leader节点存储的信息为主producer也只往leader节点上发消息不是3个节点都发同样consumer也只去读leader节点上的消息其他两个节点去同步/拷贝leader的信息其他两个节点只是在leader挂了的时候才能用到这又涉及到了选举的问题以后再说选举策略如上图所示名为my-replicated-topic的topic有两个分区partition0和partition1这两个分区各自都有3个副本其中partition0的leader是2号节点partition1的leader是0号节点示意如下

相关新闻

RTOS异常

RTOS异常

RTOS发生异常的时候,保存的寄存器

2026/7/17 11:53:25 阅读更多 →
Blender Datasmith导出插件:打通Blender与Unreal Engine的3D工作流桥梁

Blender Datasmith导出插件:打通Blender与Unreal Engine的3D工作流桥梁

Blender Datasmith导出插件:打通Blender与Unreal Engine的3D工作流桥梁 【免费下载链接】bl_datasmith UE Datasmith importer/exporter for Blender 项目地址: https://gitcode.com/gh_mirrors/bl/bl_datasmith 在当今的游戏开发和影视制作领域,…

2026/7/17 11:53:25 阅读更多 →
传统 RAG、Agentic RAG、GraphRAG 三者区别、原理与适用场景详解

传统 RAG、Agentic RAG、GraphRAG 三者区别、原理与适用场景详解

Agentic RAG(智能体检索增强生成)是下一代知识库问答能力。相比传统 RAG 的单次检索-生成流程,Agentic RAG 基于 Agent Loop 框架,实现智能体自主反思、智能切换检索策略、多轮迭代检索,在知识场景中提供更广的回答范围…

2026/7/17 11:51:24 阅读更多 →

最新新闻

揭秘 GitHub 热门开源巨擘:freeCodeCamp 背后的技术哲学与测试驱动开发之道

揭秘 GitHub 热门开源巨擘:freeCodeCamp 背后的技术哲学与测试驱动开发之道

揭秘 GitHub 热门开源巨擘:freeCodeCamp 背后的技术哲学与测试驱动开发之道 在当今的软件开发生态中,GitHub 已经不仅仅是一个代码托管平台,它是全球超过 1.5 亿开发者的数字家园,是技术迭代的见证者。当我们浏览 GitHub 的热门榜…

2026/7/17 12:46:00 阅读更多 →
AI在高端制造中的具体技术瓶颈是什么?预计何时能突破?

AI在高端制造中的具体技术瓶颈是什么?预计何时能突破?

AI在高端制造中当前面临的核心技术瓶颈主要集中在数据、算法、算力、软硬件协同与可信性五个维度,相关瓶颈预计在2027年至2030年期间随工业大模型、物理神经网络及边缘计算成熟而逐步取得阶段性突破。具体技术瓶颈工业数据孤岛与质量困境:制造数据多源异…

2026/7/17 12:46:00 阅读更多 →
AI智能体协作交易系统:LangGraph架构与实战优化

AI智能体协作交易系统:LangGraph架构与实战优化

1. 为什么需要AI智能体协作的交易系统 传统量化交易系统存在一个致命缺陷——它们通常是单线程的决策机器。我在华尔街做了8年量化交易,亲眼见过太多"一根筋"的交易算法在市场突变时酿成惨剧。2020年3月疫情引发的市场熔断中,我们团队有个年化…

2026/7/17 12:41:58 阅读更多 →
突破性Windows字体自定义工具:No!! MeiryoUI完全指南

突破性Windows字体自定义工具:No!! MeiryoUI完全指南

突破性Windows字体自定义工具:No!! MeiryoUI完全指南 【免费下载链接】noMeiryoUI No!! MeiryoUI is Windows system font setting tool on Windows 8.1/10/11. 项目地址: https://gitcode.com/gh_mirrors/no/noMeiryoUI No!! MeiryoUI是一款革命性的Windows…

2026/7/17 12:41:58 阅读更多 →
Nexus技术解析:向量检索到知识编译的范式迁移

Nexus技术解析:向量检索到知识编译的范式迁移

1. Nexus技术解析:从向量检索到知识编译的范式迁移Pinecone最新发布的Nexus技术框架,本质上是对传统RAG(检索增强生成)架构的一次彻底重构。作为长期从事AI知识库建设的实践者,我亲历了从早期关键词检索到向量检索的技…

2026/7/17 12:41:58 阅读更多 →
B站成分检测器:5分钟掌握评论区用户识别的完整指南

B站成分检测器:5分钟掌握评论区用户识别的完整指南

B站成分检测器:5分钟掌握评论区用户识别的完整指南 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分,支持动态和关注识别以及手动输入 UID 识别 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-comment-checker 你是否…

2026/7/17 12:39:58 阅读更多 →

日新闻

2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制

2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制

2026全国外贸独立站搭建公司推荐排行 外贸工厂、工贸企业建设官网,核心需求与普通展示型网站并不相同。除了页面整洁、多语言适配和海外访问体验,企业还要重点考虑数据能否导出、站点能否迁移、源码是否可控、后续费用是否透明,以及更换服务…

2026/7/17 0:02:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析

HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析

3D 翻转动画实现——ArkTS 动画系统全解析引言 在移动应用中,卡片翻转动画是最受欢迎的交互动效之一,它能给用户带来直观的"物理世界"操作感。在我们的英语学习 App 的单词学习页面(CourseHomePage.ets)中,就…

2026/7/17 0:02:10 阅读更多 →
2026键盘推荐|IQUNIX EV63多场景适配,不允许有人不知道!

2026键盘推荐|IQUNIX EV63多场景适配,不允许有人不知道!

现在很多用户都需要一款能适配多场景的键盘,既能满足交流码字的需求,又能应对居家电竞的性能需求,最好还得有点小颜值。而大多键盘都只能兼顾其中一两个场景。这次我实测了IQUNIX EV63三款配色(银武士、黑武士、紫罗兰&#xff09…

2026/7/17 0:04:10 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/17 3:22:28 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/17 3:01:28 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/16 23:40:37 阅读更多 →

月新闻