Rocketmq源码(一)手把手本地调试

news2025/7/23 16:17:48

很久没有学习了,从前是因为太忙,现在是因为太懒。立个flag,一定要把rocketmq源码看完!源码阅读从idea的环境搭建和debug开始~

Idea搭建调试目录

      • 代码下载
      • 代码架构
      • 启动namesvr
      • 启动broker
      • 启动consumer
      • 启动producer

代码下载

先将代码从github上下载下来。一共是4个模块需要启动,分别是namesvr、broker、consumer、producer,部署架构如下图所示。(图摘自官网)
在这里插入图片描述

代码架构

先大致捋一下代码架构,如下图所示。
在这里插入图片描述

核心模块如下:

  • rocketmq-broker:broker主要的业务逻辑,消息收发,主从同步。
  • rocketmq-client:客户端接口,生产者和消费者。
  • rocketmq-namesrv:nameserver服务注册与发现。
  • rocketmq-remoting:远程调用接口,封装Netty底层通信。
  • rocketmq-store:消息存储核心包。
  • rocketmq-common:公用数据结构等等。
  • rocketmq-distribution:配置文件。
  • rocketmq-example:生产者和消费者示例。
  • rocketmq-logappender、rocketmq-logging:日志相关。

启动namesvr

  1. 设置环境变量
    ROCKETMQ_HOME=[你的rocketmq项目路径]/distribution
  2. 设置启动命令参数
    -n 127.0.0.1:9876
    在这里插入图片描述
  3. 增加日志输出到控制台(可选)
    在distribution/conf/logback_namesrv.xml文件中增加输出到控制台 ,为了方便看日志。
    在这里插入图片描述
  4. 启动NamesrvStartup

启动broker

  1. 设置环境变量
    ROCKETMQ_HOME=[你的rocketmq项目路径]/distribution
  2. 设置启动命令参数
    -c [你的rocketmq项目路径]/distribution/conf/broker.conf
    在这里插入图片描述
  3. 在distribution/conf/broker.conf 文件中增加配置
## nameserver地址 设置为本地
namesrvAddr = 127.0.0.1:9876
## 自动创建topic
autoCreateTopicEnable = true
brokerClusterName = DefaultCluster
brokerName = broker-a
## 表示master节点
brokerId = 0
## 在每天4点清理过期数据
deleteWhen = 04
## 数据保存时间为4h
fileReservedTime = 48
brokerRole = ASYNC_MASTER
## 异步刷盘
flushDiskType = ASYNC_FLUSH
## 这个master节点的ip地址 设置为本地
brokerIP1 = 127.0.0.1
  1. 增加日志输出到控制台(可选)
    在distribution/conf/logback_broker.xml文件中增加输出到控制台 ,为了方便看日志。
    在这里插入图片描述
  2. 启动BrokerStartup

启动consumer

在example模块下的simple包里找到PushConsumer,设置nameserver后可启动。
在这里插入图片描述

启动producer

在example模块下的simple包里找到Producer,设置nameserver后可启动。
在这里插入图片描述
producer发送完在consumer的控制台上观察是否接收到即可。

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

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

相关文章

深度学习训练营之yolov5 官方代码调用以及-requirements.txt下载当中遇到的问题

深度学习训练营之yolov5 官方代码调用原文链接内容总结环境介绍前置工作简单介绍yolov5下载源码yolov5的下载遇到问题问题解析问题处理创建虚拟环境下载当中遇到的问题代码运行视频检测参考内容原文链接 🍨 本文为🔗365天深度学习训练营 中的学习记录博客…

taobao.trades.sold.query( 根据收件人信息查询交易单号 )

¥开放平台免费API必须用户授权聚石塔内调用 根据收件人信息查询交易单号。 公共参数 请求地址: HTTP地址 公共请求参数: 公共响应参数: 请求参数 请求示例 TaobaoClient client new DefaultTaobaoClient(url, appkey, secret); TradesSoldQueryRequest req new…

我用了33行纯CSS实现了下划线的交互动画效果

背景 最近看到了一个特别炫酷的网站上的一个小细节,下划线的动画。看下他的实现效果。 但是,假如我们左边并没有足够的空间存放一条不可见的下划线呢? 像这样。 思路与实现 我要把这个下划线也做成文章刚开始的动画。就不是太好借鉴上面的思…

Windows Server 2022 中文版、英文版下载 (updated Feb 2023)

Windows Server 2022 中文版、英文版下载 (updated Feb 2023) Windows Server 2022 正式版,2023 年 2 月更新 请访问原文链接:https://sysin.org/blog/windows-server-2022/,查看最新版。原创作品,转载请保留出处。 作者主页&a…

Spring Boot 调取Bartender使用教程

Spring Boot 调取Bartender使用教程.md 原文链接:小回博客 博主可帮忙配置bartender进行打印,另有完整Mes系统源码。业务清单 文章目录Spring Boot 调取Bartender使用教程.md[toc]一、复制解压压缩包JavaBarTenderPrint.zip到C盘根目录下:二…

DNF搭建服务器服务端搭建教程

DNF搭建服务器服务端搭建教程 我是艾西,今天给大家分享下怎么样自己搭建一个DNF。 前阵子体验了下其他GM搭建的服,那么对于自己搭建的好处在于出道即巅峰! 想要什么武器就是一串代码命令的事情。 下面我跟大家说一下需要准备那些东西&#x…

2023年度数学建模竞赛汇总

本人7年数学建模竞赛经验,历史获奖率百分之百。团队成员都是拿过全国一等奖的硕博,有需要数模竞赛帮助的可以私信我。 下面主要列几年一些比较有含金量的数学建模竞赛(按比赛时间顺序) 1. 美国大学生数学建模竞赛 报名时间&…

mars3d基础项⽬常⻅报错

1.在⼤家使⽤mars3d基础项⽬的时候经常遇到这个报错,截图如下 回答: 1.原因是因为使⽤了cnpm安装依赖,导致了⼀些依赖问题 2.解决⽅式也很简答,重新使⽤ npm 或 yarn 或 pnpm安装依赖即可 2.本地加载地图时,出现报错回…

云原生|kubernetes|ingress-nginx插件部署(kubernetes-1.23和最新版controller-1.6.4)

前言: ingress是kubernetes内的一个重要功能插件,这个使得服务治理成为一个可能,当然,结合微服务更为妥当了。 不管是什么插件,还是服务,第一步当然是要能顺利的部署到系统当中,这样&#xff…

Oracle——物化视图

文章目录含义物化视图的语法物化视图的创建1、自动刷新的物化事务 ON COMMIT2、非自动刷新的物化视图 ON demand关于手动刷新物化视图的删除资料参考含义 什么是物化视图? 物化视图,通俗点说就是物理化的视图。 什么叫物理化? 将视图以表结构…

【论文解读】如何使用1B参数的小模型打败GPT3.5

大型语言模型 (LLM) 通过利用思维链 (CoT) 提示生成中间推理链作为推断答案的基本原理,在复杂推理上表现出了令人印象深刻的性能。 然而现有的 CoT 研究主要集中在语言模态上。 我们提出 Multimodal-CoT(多模态思维链推理模型),它…

GCC:从源文件到可执行文件

GCC&#xff1a;从源文件到可执行文件 假设我们有hello.c 文件 #include <stdio.h> int main(){printf("hello world!\n");return 0; }怎么在linux上利用GCC命令生产可执行文件&#xff08;单文件编译&#xff09;呢&#xff1f; 一、流程 C文件从源文件到…

二极管温度补偿电路工作原理分析

众所周知&#xff0c;PN结导通后有一个约为0.6V&#xff08;指硅材料PN结&#xff09;的压降&#xff0c;同时PN结还有一个与温度相关的特性&#xff1a;PN结导通后的压降基本不变&#xff0c;但不是不变&#xff0c;PN结两端的压降随温度升高而略有下降&#xff0c;温度愈高其…

Git天天用,不得不看的那些事

作为一个工作两年的开发同学&#xff0c;git是每天都要接触的工具。但IDEA对git的封装已经满足了日常的代码提交需求&#xff0c;所以一直是以点点点的形式进行代码提交与更新&#xff0c;几乎没用命令行提交过&#xff08;现在想来也是有些惭愧&#xff09;&#xff0c;对于gi…

【华为OD机试模拟题】用 C++ 实现 - 环中最长子串(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

VMware ESXi 7.0 U3k Unlocker OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版)

ESXi 7 U3 标准版集成 Intel 网卡、USB 网卡 和 NVMe 驱动 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-esxi-7-u3-sysin/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;www.sysin.org 本次针对 2023-02-21 发布的 ESXi …

Tina_Linux_系统软件 开发指南

Tina_Linux_系统软件 开发指南 1 概述 编写目的&#xff1a;本文档作为Allwinner Tina Linux系统平台开发指南&#xff0c;旨在帮助软件开发工程师、技术支持工程师快速上手&#xff0c;熟悉Tina Linux系统的开发及调试流程。 适用范围&#xff1a;Tina Linux v3.5及以上版本…

5.35 综合案例2.0 -称重数据上传云端

综合案例2.0 - 称重数据上传云端案例说明连线功能实现1.阿里云平台连接代码应用开发3.1新建‘普通项目’3.2关联产品和设备3.3新建‘移动应用’3.4添加组件3.5配置组件信息3.6保存预览案例说明 使用hx711串口模块称重,结合IOT studio制作手机APP远程控制并采集物体重量。 hx7…

自学前端,你必须要掌握的3种定时任务

当你看到这篇博客的时候&#xff0c;一定会和狗哥结下不解之缘&#xff0c;因为狗哥的博客里不仅仅有代码&#xff0c;还有很多代码之外的东西&#xff0c;如果你可以看到最底部&#xff0c;看到投票环节&#xff0c;我相信你一定感觉到了&#xff0c;狗哥的真诚&#xff0c;狗…

主题模型-LDA

目录 一.LDA的应用方向 二.朴素贝叶斯的分析 三.Gamma函数 四.Beta分布 五.Beta分布的期望 六.LDA涉及的主要问题 1.共轭先验分布 ①.二项分布的最大似然估计 ②.二项分布与先验举例 ③.上述过程的理论解释 ④.先验概率和后验概率的关系 ⑤.伪计数 ⑥.共轭先…