RocketMQ学习总结

一、架构

在这里插入图片描述

在这里插入图片描述
1、NameServer:注册中心。Broker信息注册到NameServer;producer/consumer根据某个topic通过NameServer获取对应broker的路由信息 ;

2、Broker:负责存储、拉取、转发消息;

3、Producer:消息生产者,与NameServer集群中的其中一个节点(随机选择)建立长连接,定期从NameServer取Topic路由信息,并向提供Topic服务的Master建立长连接,且定时向Master发送心跳。

4、Consumer:消息消费者,与NameServer集群中的其中一个节点(随机选择)建立长连接,定期从NameServer取Topic路由信息,并向提供Topic服务的Master、Slave建立长连接,且定时向Master、Slave发送心跳。Consumer既可以从Master订阅消息,也可以从Slave订阅消息,订阅规则由Broker配置决定。
在这里插入图片描述
5、Queue:存储消息的commitLog记录(存储在内存),类似于消息的索引,消息体存储在磁盘中,通过commitLog关联。

二、刷盘机制

1、同步刷盘:消息被写入PageCache后立即刷盘,只有当消息被持久化到磁盘后才会响应ACK。

2、异步刷盘:消息在被写入PageCache后就会响应ACK,当PageCache里的消息积累到一定量后,由OS线程将PageCache里的消息刷入磁盘。注:如果RocketMQ服务挂了,PageCache里的消息并不会丢失,因为PageCache是属于Linux系统的缓冲区,只有当服务器突然断电才会导致消息丢失。

3、异步刷盘+缓冲区:RocketMQ将一部分内存当做缓冲区,消息被写入内存缓冲区后就返回ACK,由后台程序将内存缓冲区里的消息刷入磁盘。注:在该模式下,RocketMQ服务宕机或服务器突然断电都会导致消息丢失。

三、消息类型

1、普通消息
2、顺序消息(存储在同一个queue)
3、延时消息
4、批量消息
5、事务消息(达到最终一致性,非强一致性)
在这里插入图片描述

四、消息类型

集群消费:
广播消费:

pull、push、长轮训

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

creature_summon_groups

字段介绍 这个表保存了关于临时召唤生物的数据 creature_summon_groups summonerId(召唤者ID) summonerType 0 时,此处为 creature 的 entrysummonerType 1 时,此处为 gameobject 的 entrysummonerType 2 时,此处…

从设备维修到机器视觉:我的职业发展之路

大家好!我是学员向工,今天很高兴有机会与大家分享我的职业经历。十年前,18岁中专毕业的那年,我踏入社会,至今已经过去了十年。一开始,我主要从事设备的维修、装配、钳工和电工等多岗位工作。 然而&#xff…

大数据关联规则挖掘:Apriori算法的深度探讨

文章目录 大数据关联规则挖掘:Apriori算法的深度探讨一、简介什么是关联规则挖掘?什么是频繁项集?什么是支持度与置信度?Apriori算法的重要性应用场景 二、理论基础项和项集支持度(Support)置信度&#xff…

༺༽༾ཊ—Unity之-02-简单工厂模式—ཏ༿༼༻

首先我们打开一个项目 在这个初始界面我们需要做一些准备工作 建基础通用包 创建一个Plane 重置后 缩放100倍 加一个颜色 任务:使用【简单工厂模式】生成四种不同怪物 【按不同路径移动】 首先资源商店下载四个怪物模型 接下来我们选取四个怪物作为预制体并分别起名…

【Java并发】聊聊concurrentHashMap扩容核心流程

扩容 什么时候扩容 链表转红黑树。需要判断数组长度,触发扩容调用putAll() , 触发tryPresize() 方法数据量达到阈值 tryPresize-初始化数组 // 扩容前操作,putAll or 链表转红黑树 // size是原数组长度 * 2private final void tryPresize(int size) {…

如何在Servlet中获取请求参数的值

看看这个大佬做的动图吧! 在Servlet中,你可以使用HttpServletRequest对象来获取请求参数的值。HttpServletRequest对象提供了一些方法,允许你访问从客户端发送的请求信息。以下是一些获取请求参数的常用方法: getParameter(String…

《SPSS统计学基础与实证研究应用精解》视频讲解:变量和样本观测值基本操作

《SPSS统计学基础与实证研究应用精解》4.1 视频讲解 视频为《SPSS统计学基础与实证研究应用精解》张甜 杨维忠著 清华大学出版社 一书的随书赠送视频讲解4.1节内容。本书已正式出版上市,当当、京东、淘宝等平台热销中,搜索书名即可。本书旨在手把手教会使…

k8s-ingress一

Comfigmap:存储数据 Date: Key:value 挂载的方式,把配置信息传给容器 生产当中的yml文件很长: 有deployment 容器的探针 资源限制 Configmap 存储卷 Service Ingress K8s的对外服务,ingress Se…

2023年总结我所经历的技术大变革

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅…

只需要1天+10元,上线我的第①个工具站 - 50个工具站打卡计划

2023年用了一整年的时间探索技术变现的方式,学习到了特别多的理论知识。2024年到了爆发的时间了。今年计划上线50款出海工具站计划,我会详细记录开发工具站的全部流程。 工具站的核心任务是找到关键字,找对关键词并成功注册到适当的域名&…

logstack 日志技术栈-04-opensource 开源工具 SigNoz+Graylog

3. SigNoz SigNoz 是一个日志收集和分析工具,可以收集和管理来自各种来源的日志、指标、跟踪和异常。 它为使用 OpenTelemetry 检测应用程序提供本机支持,以防止供应商锁定,将收集到的数据存储在 ClickHouse 中,然后在用户友好的…

༺༽༾ཊ—Unity之-01-单例模式—ཏ༿༼༻

在游戏开发过程中,我们会创建各种各样的类,再用new生成实例,有些时候我们需要这个类在整个游戏中是唯一出现的,比如一些管理器比如声音管理器等,没必要创建很多实例,就算有很多模块需要各种声音功能&#x…

NSIS来打包windows安装程序,开源免费简单小巧,支持中文

NSIS (Nullsoft脚本安装系统)是一个专业的开源系统,用于创建 Windows 安装程序。它被设计成尽可能小和灵活,因此非常适合互联网分发,并且原生支持中文,不像inno setup还需要你单独安装一个中文语言包。 NSIS官网:NSIS…

二叉树进阶oj题目

二叉树进阶oj题目 两个结点的最近公共祖先前序中序(中序后序)还原二叉树 1、两个结点的最近公共祖先(两种方法) leetcode链接 题目描述:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共…

【Linux系统编程】环境变量详解

文章目录 1. 环境变量的基本概念2. 如何理解呢?(测试PATH)2.1 切入点1查看具体的环境变量原因剖析常见环境变量 2.2 切入点2给PATH环境变量添加新路径将我们自己的命令拷贝到PATH已有路径里面 2.3 切入点3 3. 显示所有环境变量4. 测试HOME5. …

【浅谈Linux中批量化注释和批量化去注释】

这篇博客主要是关于Linux中注释与去注释,在Linux和vs等编译器中代码行的注释和去注释会有很大不同,Linux中主要使用指令的方式来进行。 目录 批量化注释 批量化去注释 批量化注释 操作 ctrlv,hjkl区域选择(主要使用j-下移)&…

GPT应用_PrivateGPT

项目地址:https://github.com/imartinez/privateGPT 1 功能 1.1 整体功能,想解决什么问题 搭建完整的 RAG 系统,与 FastGPT 相比,界面比较简单。但是底层支持比较丰富,可用于知识库的完全本地部署,包含大…

Ubuntu22.04安装GitLab

如果我们是自己本地进行开发,使用Git的简单版本管理功能即可。但如果要做协同开发,使用GitLab自己部署Git代码仓库,是一个不错的选择。 笔者曾使用过svn和Git,相比较而言,Git的使用体验更好。 那么我们接下来安装一下。 安装 首先是升级下包源信息 sudo apt update …

.NET国产化改造探索(六)、银河麒麟操作系统中安装多个.NET版本

随着时代的发展以及近年来信创工作和…废话就不多说了,这个系列就是为.NET遇到国产化需求的一个闭坑系列。接下来,看操作。 上一篇文章介绍了如何在银河麒麟操作系统上,使用Nginx.NET程序实现自启动。本文介绍下如何在一个环境中,…

19.云原生CICD之ArgoCD入门

云原生专栏大纲 文章目录 ArgoCDArgoCD 简介GitOps介绍Argo CD 的工作流程argocd和jinkens对比kustomize介绍ArgoCD和kustomize关系 安装argocdargocd控制台介绍首页应用创建表单SYNC OPTIONS(同步选项)SYNC POLICY(同步策略) 应…