RocketMQ初认识

  • Producer
  • Customer
  • NameServer: Broker的注册服务发现中心
  • BrokerServer:主要负责消息的存储、投递和查询以及服务高可用保证

RocketMQ的集群部署:

  • 单个master的分支
  • 多个Master 模式:集群中有多个 Master 节点,彼此之间相互独立。生产者可以将消息发送到任意一个 Master 节点,消费者也可以从任意一个 Master 节点消费消息
  • 多个Master 和 多个Slave 模式 :
    • 同步双写:每个 Master 节点都有一个或多个 Slave 节点与之对应。在消息写入时,生产者发送的消息不仅要写入 Master 节点,还要同步写入对应的 Slave 节点,只有当 Master 和 Slave 都写入成功,才会向生产者返回成功响应。
    • 异步复制:同样是每个 Master 节点配备一个或多个 Slave 节点,但消息写入时,生产者发送的消息只需要写入 Master 节点成功,就会向生产者返回成功响应,而 Master 节点会异步地将消息复制到 Slave 节点

为什么RocketMQ不使用Zookeeper,反而自己写NameServer>

在第三种模式中,Master只需要做好自己的事情就行了,不需要需要知道彼此的存在。

ZooKeeper可以提供Master选举功能。比如Kafka用来给每个分区选一个broker作为leader。

对于RocketMQ来说,topic的数据在每个Master上是对等的,没有哪个Master上有topic上的全部数据。不用处理维护之间的关系。

RocketMQ的高可用:
  • NameServer的高可用:NameServer存放的数据相同
  • BrokerServer: 主从模式,从可以被消费,并且从节点可以转成主
  • consumer 的高可用:当master不可以用的话,可以从slave读取
  • produce : 多个master读取

raft的模式可以自动选择主节点

  • 每个 BrokerNameServer 集群中的所有节点建立长连接,定时注册 Topic 信息到所有 NameServer。
  • ProducerNameServer 集群中的其中一个节点建立长连接,定期从 NameServer 获取 Topic 路由信息,并向提供 Topic 服务的 Master 建立长连接,且定时向 Master 发送心跳。Producer 完全无状态。
  • ConsumerNameServer 集群中的其中一个节点建立长连接,定期从 NameServer 获取 Topic 路由信息,并向提供 Topic 服务的 Master、Slave 建立长连接,且定时向 Master、Slave 发送心跳。Consumer 既可以从 Master 订阅消息,也可以从 Slave 订阅消息。

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

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

相关文章

Maven/Gradle的讲解

一、为什么需要构建工具? 在理解 Maven/Gradle 之前,先明确它们解决的问题: ​​依赖管理​​:项目中可能需要引入第三方库(如 Spring、JUnit 等),手动下载和管理这些库的版本非常麻烦。​​标准化构建流程​​:编译代码、运行测试、打包成 JAR/WAR 文件等步骤需要自动…

基于SSM的车辆管理系统的设计与实现(代码+数据库+LW)

摘要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。以前企业对于车辆信息的管理和控制,采用人工登记的方式保存相关数据,这种以人力为主的管理模式已然落后。本人结…

嵌入式硬件篇---JSON通信以及解析

文章目录 前言一、JSON特点语法简单数据格式灵活轻量化跨语言使用二、JSON数据结构对象数组三、JSON在单片机之间通信的应用数据封装与传输四、JSON示例代码五、JSON在上位机与单片机之间通信的应用数据交互六、JSON示例代码七、JSON解析与生成解析生成八、Python中的数据解析1…

【C#】.net core 6.0 依赖注入常见问题之一,在构造函数使用的类,都需要注入到容器里,否则会提示如下报错,让DeepSeek找找原因,看看效果

🌹欢迎来到《小5讲堂》🌹 🌹这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!&#…

《P1072 [NOIP 2009 提高组] Hankson 的趣味题》

题目描述 Hanks 博士是 BT(Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson。现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题。 今天在课堂上,老师讲解了如何求两个正整数 c1​ 和 c2​ 的最大公约数…

nginx的自动跳转https

mkdir /usr/local/nginx/certs/ 创建一个目录 然后用openssl生成证书 编辑nginx的配置文件 自动跳转成功 做一个优化,如果访问的时候后面加了其他的uri也一起自动跳转了

力扣刷题——508.出现次数最多的子树和

给你一个二叉树的根结点 root ,请返回出现次数最多的子树元素和。如果有多个元素出现的次数相同,返回所有出现次数最多的子树元素和(不限顺序)。 一个结点的 「子树元素和」 定义为以该结点为根的二叉树上所有结点的元素之和&…

2025/4/2 心得

第一题 题目描述 给定1001个范围在[1,1000]的数字,保证只有1个数字重复出现2次,其余数字只出现1次。试用O(n)时间复杂度来求出出现2次的这个数字。 不允许用数组 输入格式 第一行:一个整数1001; 第二行:1001个用…

0基础 | 硬件 | NE555芯片 二

目录 “双稳态电路之按键开关LED” 版本一: 版本二: “单稳态电路之延时自动关” 版本一 “无稳态电路之延时自动开关” 版本一: 版本二 “双稳态电路之按键开关LED” 版本一: 按键1 使2脚输入低电平,则3输出…

Python实现链接KS3,并将文件数据上传到KS3

前言 本文是该专栏的第55篇,后面会持续分享python的各种干货知识,值得关注。 说到KS3,首先想到的是金山云提供的对象存储服务。 相信或多或少的同学,在工作项目中也会遇到KS3相关的需求。比如说,现在有大批量的数据文件需要通过Python,上传到KS3中。对此,需要怎么去做…

小白 解析thingsboard 规则链节点

目录 1、filter(筛选器)节点内容 1. Alarm Status Filter(报警状态过滤器) 2. Check Fields Presence(检查字段存在性过滤器) 3. Check Relation Presence(检查关系存在性过滤器) 4. Entity Type Filter(实体类型过滤器) 5. Message Type Filter(消息类型过滤器…

PgVectore的使用

PgVectore的使用 一、PgVector的安装 参照博客:https://blog.csdn.net/u012953777/article/details/147013691?spm1001.2014.3001.5501 二、PgVector的使用 1、创建表与插入数据​ ​​定义向量字段​​: CREATE TABLE items (id SERIAL PRIMARY …

python爬虫爬取淘宝热销(热门)男装商品信息(课程设计;提供源码、使用说明文档及相关文档;售后可联系博主)

TOC 本文仅为记录学习轨迹,如有侵权,联系删除 一、环境说明 使用前必须检查以下环境 (1)python编译环境 (2)python脚本执行所需要的库,具体看代码(main.py)import导入的部分库 &a…

C++ 排序(1)

以下是一些插入排序的代码 1.插入排序 1.直接插入排序 // 升序 // 最坏&#xff1a;O(N^2) 逆序 // 最好&#xff1a;O(N) 顺序有序 void InsertSort(vector<int>& a, int n) {for (int i 1; i < n; i){int end i - 1;int tmp a[i];// 将tmp插入到[0,en…

计算机视觉图像处理基础系列:滤波、边缘检测与形态学操作

计算机视觉图像处理基础系列&#xff1a;滤波、边缘检测与形态学操作 一、前言二、滤波&#xff1a;图像的精细化处理​2.1 滤波基础概念​2.1.1 滤波的本质​2.1.2 图像噪声来源与类型​ 2.2 线性滤波​2.2.1 均值滤波​2.2.2 高斯滤波​ 2.3 非线性滤波​2.3.1 中值滤波​ 三…

第八课:在SD中安装拓展插件

3种拓展安装方式教学 点击Extensions安装方式 经由内置列表查询安装&#xff0c;打开Available&#xff0c;输入链接&#xff0c;点击Load from:&#xff0c;然后筛选后点击Install通过链接安装&#xff0c;复制代码仓库地址&#xff0c;github/gitee&#xff0c;输入Install …

tomcat的web三大组件Sciidea搭建web/maven的tomcat项目

文章目录 1. web项目的搭建1. 创建web项目2.修改web.xml版本3.添加servlet、jsp依赖4.servlet示例&#xff08;使用注解&#xff09;5.配置tomcat6.添加artifact7.部署8.启动tomcat、访问9.打war包10.部署到tomcat 2.maven的项目搭建1.创建项目图解 2.tomcat启动方式图解idea打…

ZKmall开源商城多云高可用架构方案:AWS/Azure/阿里云全栈实践

随着企业数字化转型的加速&#xff0c;云计算服务已成为IT战略中的核心部分。ZKmall开源商城作为一款高性能的开源商城系统&#xff0c;其在多云环境下的高可用架构方案备受关注。下面将结合AWS、Azure和阿里云三大主流云平台&#xff0c;探讨ZKmall的多云高可用架构全栈实践。…

【代码模板】如何用FILE操作符打开文件?fopen、fclose

#include "stdio.h" #include "unistd.h"int main(int argc, char *argv[]) {FILE *fp fopen("1.log", "wb");if (!fp) {perror("Failed open 1.log");return -1;}fclose(fp); }关于权限部分参考兄弟篇【代码模板】C语言中…

Airflow+Spark/Flink vs. Kettle

在迁移亿级&#xff08;单表超过1.3亿&#xff09;结构化数据&#xff08;达梦→星环&#xff09;的场景下&#xff0c;Airflow&#xff08;结合分布式计算框架&#xff09;的综合效果优于Kettle&#xff0c;以下是详细对比与方案建议&#xff1a; 一、核心对比&#xff1a;Air…