RocketMq broker源码解析

news2024/12/23 9:08:58

broker 集群工作流程

  1. NameSrv启动成功后,等待broker、Consumer和producer启动后也与NameSrv保持长连接,
    NameSrv相当于是路由控制中心。
  2. 启动broker, broker与所有的NameSrv建立长连接, broker,通过定时线程定时向NameSrv发送心跳,broker信息注册到所有的NameSrv上, 包含brokerName、brokerAddr、clusterName等由nameSrv去保存。
  3. producer启动时,先随机选择Namesrv集群中的某一台机器保持长连接,同时手动创建topic, 然后指定topic放入到哪些broker中,创建topic的过程可以自动,因此在发送消息前,producer会先根据topic去找到哪些broker,然后拿到broker里的所有队列列表,轮询从队列列表中选择一个队列,然后与队列所在的broker建立连接,向broker发送消息。
  4. Consumer消费消息前,先随机选择Namesrv集群中的某一台机器保持长连接, 然后根据topic
    去NameSrv中找到有哪些broker,然后consumer与broker建立连接,consumer就能消费到消息了。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

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

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

相关文章

mysql中子查询的语法和执行过程

大家好。我们在日常开发过程中,肯定都经常用到了子查询。今天我们就来聊一下mysql中子查询的一些语法以及子查询的执行过程。 一、子查询的语法 首先在开讲之前,我们先创建t1、t2两张表,并分别在表中插入三条数据,方便我们下面内…

JDK环境配置、安装

DK环境配置(备注:分32位与64位JDK,32位电脑只能按照32位JDK,64位电脑兼容32、64位JDK) 一、检查自己电脑是否安装过JDK 1.在电脑屏幕左下角,输入命令提示符CMD,打开命令提示符应用 2.在打开界…

AI视频下载:ChatGPT数据科学与机器学习课程

ChatGPT是一个基于OpenAI开发的GPT-3.5架构的AI对话代理。作为一种语言模型,ChatGPT能够理解并对各种主题生成类似人类的响应,使其成为聊天机器人开发、客户服务和内容创作的多用途工具。 此外,ChatGPT被设计为高度可扩展和可定制的,允许开发人员对其响应进行微调并将其集成到…

[stm32]——定时器与PWM的LED控制

目录 一、stm32定时器 1、定时器简介 2、定时器分类 3、通用定时器介绍 二、PWM相关介绍 1、工作原理 2、PWM的一般步骤 三、定时器控制LED亮灭 1、工程创建 2、代码编写 3、实现效果 四、采用PWM模式,实现呼吸灯效果 1、工程创建 2、代码编写 3、实现效果 一、stm3…

跨境电商多店铺:怎么管理?风险如何规避?

跨境电商的市场辽阔,有非常多的商业机会。你可能已经在Amazon、eBay、Etsy等在线平台向潜在客户销售产品了。为了赚更多的钱,你可能还在经营多个店铺和品牌。 但是,像Amazon、eBay、Etsy等知名平台会有自己的规则,他们开发了很多…

风电功率预测 | 基于TCN-GRU时间卷积门控循环单元的风电功率预测(附matlab完整源码)

完整代码 clc; clear close allX = xlsread(风电场预测.xlsx); X = X(5665:8640,:); %选取3月份数据 num_samples =

linux系统——性能检测工具glances

在linux系统中,由python开发的glances工具是一个功能强大的性能检测工具 可以通过yum进行安装 安装glances后,进入命令界面 glance支持网站模式,将监控到的数据以网站形式显示出来 这里需要用python包管理命令 使用glances -w开放…

STM32 HAL库USART的接收数据方法实现(STM32Cube_FW_F1_V1.8.5)

目录 概述 1 使用STM32Cube生成项目 1.1 软件版本信息 1.2 配置串口相关参数 1.3 生成工程 2 问题描述 3 解决问题 3.1 修改代码 3.2 编写新的回调函数 4 测试 概述 本文主要介绍STM32 HAL库USART的接收数据方法实现,笔者使用的HAL库为STM32Cube_FW_F1_V1.…

声音的归宿:恢复手机录音的3个步骤与策略

“手机录音删除了怎么恢复,没有云备份。本人平时喜欢用手机录音机录一些唱的歌,上次录过之后就再也没有打开,今天一打开发现上个月的录音都没了!里面都是我的歌,还有期末重点,还有声乐课的录的音频&#xf…

R语言绘图 | 双Y轴截断图

教程原文:双Y轴截断图绘制教程 本期教程 本期教程,我们提供的原文的译文,若有需求请回复关键词:20240529 小杜的生信笔记,自2021年11月开始做的知识分享,主要内容是R语言绘图教程、转录组上游分析、转录组…

JS脚本打包成一个 Chrome 扩展(CRX 插件)

受这篇博客 如何把CSDN的文章导出为PDF_csdn文章怎么导出-CSDN博客 启发,将 JavaScript 代码打包成一个 Chrome 扩展(CRX 插件)。 步骤: 1.创建必要的文件结构和文件: manifest.jsonbackground.jscontent.js 2.编写…

每日一题——Python实现PAT甲级1035 Password(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码逻辑分析: 时间复杂度分析: 空间复杂度分析&a…

CDH6.3.2集成Flink1.12.2

一、Linux下载httpd服务并开启 yum install y httpd systemctl start httpd systemctl enable httpd 二、获取已制作好的安装包 flink-1.12.2-bin-scala_2.11.tar ​ FLINK_ON_YARN-1.12.2.jar ​ flink-shaded-hadoop-2-uber-3.0.0-cdh6.3.2-10.0.jar 三、集成CM 1.上传编…

「多客」圈子论坛社区交友系统开源版小程序源码|圈子社区系统

简述 社交圈子论坛系统是一种面向特定人群或特定话题的社交网络,它提供了用户之间交流、分享、讨论的平台。在这个系统中,用户可以创建、加入不同的圈子,圈子可以是基于兴趣、地域、职业等不同主题的。用户可以在圈子中发帖、评论、点赞等互…

Windows系统安装openvino(2024.1.0)

一、openvino下载: 下载地址:下载英特尔发行版 OpenVINO 工具套件 (intel.cn) 下载完之后将压缩包解压,然后重命名文件夹为openvino_2024.1.0。 二、环境配置 以python环境为例:(建议使用moniconda虚拟环境来安装&am…

springboot中抽象类无法注入到ioc容器

1、背景 在写代码时,发现service接口有两个实现类,并且两个实现类中没有对类名重命名,属性注入的时候也没有使用byName或Qualifier,正确情况下会发生多实现报错的问题,以前对这个问题进行解析过。 2、调试过程 我想…

Swift 中 @preconcurrency 修饰符使用浅谈

概述 Swift 6.0 与我们越来越近了,如何将旧范儿的并发代码装换为严格遵守 Swift 6.0 并发模型( Strict Concurrency)的新代码,这往往使得秃头码农们又要多抓掉几根头发了。 所以,为了最大限度的保持新旧两个并发世界暂…

视频删除怎么恢复?这2个方法或许能帮到你

随着科技的发展,手机视频的拍摄和存储技术也不断提高,在我们的生活中也扮演着越来越重要的角色,或是作为新媒体工作者的工作内容,或是成为我们分享生活的途径,视频占据的分量越来越重。然而,由于各种原因&a…

10- Redis 键值对数据库是怎么实现的?

在开始将数据结构之前,先给介绍下 Redis 是怎样实现键值对(key-value)数据库的。 Redis 的键值对中的 key 就是字符串对象,而 value 可以是字符串对象,也可以是集合数据类型的对象,比如 List 对象&#xf…

JAVA应用服务器如何快速定位CPU问题

如果服务器上部署了多个Java站点服务和Java微服务,并且突然接收到CPU异常告警,我们需要逐步确定是哪个服务进程造成了CPU过载,接着是哪个线程,并最终定位到是哪段代码导致了这个问题 简要步骤如下: 步骤一、找到最耗C…