RocketMQ系列开篇
RocketMQ系列开篇
今天开始学习RocketMQ相关系列源码。我会带着自己的目的去学习源码。所以不会像一般的技术博客一样,写一个完整的流程,介绍每一步干了啥。而是提出一个问题,然后去看代码里面是怎么实现的。说明一下,本次系列我选的是roketMQ的5.0.0版本,不同版本肯定代码都是有不同出入的,但是思想是一样的,大家可以借鉴。下面开始正题。
首先clone源码。然后就是本地运行了。
模块介绍
首先先介绍一下主要的模块
nameserv.其实就是一个注册中心。接收broker的注册,保存broker的路由地址,以供消费者和生产者查询。
broker。就是保存数据的地方。
comsumer和producter就不用说了,生产者和消费者。
只要有个简单的认识就可以了,后续我们会对每个模块进行解析。
本地运行
这里就只跑一个最简单的例子。
启动 nameserv
首先启动nameserv。找到nameserv这个模块下面的NamesrvStartup这个类,启动后会发现报错说没有roketmq_Home。所以在启动类里面加上环境变量。
ROCKETMQ_HOME=D:/project/ideaPorject/myProject/rocketmq/distribution
启动broker
找到broker模块下面的BrokerStartup,加上和上面同样的ROCKETMQ_HOME的环境变量,然后启动
启动comsumer和producer
在example模块下面有个quickstart目录,里面有消费者和生产者。他们的group不一样,我们先改成一样。然后先启动comsumer,再启动producer。就会发现控制台有消费和打印出来了。
至此,我们的项目就启动完成了。
相关文章:
RocketMQ系列开篇
RocketMQ系列开篇 今天开始学习RocketMQ相关系列源码。我会带着自己的目的去学习源码。所以不会像一般的技术博客一样,写一个完整的流程,介绍每一步干了啥。而是提出一个问题,然后去看代码里面是怎么实现的。说明一下,本次系列我…...
logback无法删除太久远的日志文件?logback删除日志文件源码分析
logback无法删除太久远的日志文件?logback删除日志文件源码分析 最近发现logback配置滚动日志,但是本地日志文件甚至还有2年前的日志文件,服务器是却是正常的! 网上搜索了一波没有发现,只找到说不能删除太久远的旧日志…...
【MyBatis-Plus】基于@Version注解的乐观锁实现
引入mybatis-plus依赖,注意这里的版本要求 since 3.4.0;(3.4.1,3.4.2已测) 3.2.0肯定是不支持的,无法引入MybatisPlusInterceptor; 乐观锁 当要更新一条记录的时候,希望这条记录没有被别人更新…...
ubuntu20.04搭建detectron2环境
Ubuntu22.04安装Cuda11.3 Linux下驱动安装 # 以下命令按顺序执行 sudo apt update && sudo apt upgrade -y # or sudo apt update # 查看显卡信息 ubuntu-drivers devices sudo ubuntu-drivers autoinstall # or sudo apt install nvidia-driver-510 reboot nvidia-s…...
Navicate远程连接Linux上docker安装的MySQL容器
Navicate远程连接Linux上docker安装的MySQL容器失败 来自:https://bluebeastmight.github.io/ 问题描述:windows端的navicat远程连接不上Linux上docker安装的mysql(5.7版本)容器,错误代码10060 标注: 1、…...
基于Jetson NX的模型部署
系统安装 系统安装过程分为3步: 下载必要的软件及镜像 Jetson Nano Developer Kit SD卡映像 https://developer.nvidia.com/jetson-nano-sd-card-image Windows版SD存储卡格式化程序 https://www.sdcard.org/downloads/formatter_4/eula_windows/ 镜像烧录工具…...
【PaddlePaddle onnx】PaddlePaddle导出ONNX及模型可视化教程
文章目录1 背景介绍2 实验环境3 paddle.onnx.export函数简介4 代码实操4.1 PaddlePaddle与ONNX模型导出4.2 ONNX正确性验证4.3 PaddlePaddle与ONNX的一致性检查4.4 多输入的情况5 ONNX模型可视化6 ir_version和opset_version修改7 致谢原文来自于地平线开发者社区,未…...
虹科案例 | 如何可持续的对变压器进行温度监控?
为了延长变压器的使用寿命,需要一个测量系统来监测内部整个绕组区域的温度。它必须明确温度升高发生的位置及其强度。您可以在此处了解为什么会这样以及如何在实践中实施? PART 1 变压器多点测温问题 变压器的工作温度越高,使用寿命越短。这里主要存在…...
Go之入门(特性、变量、常量、数据类型)
一、Go语言特性 语法简单并发性。Go语言引入了协程goroutine,实现了并发编程内存分配。Go语言为了解决高并发下内存的分配和管理,选择了tcmalloc进行内存分配(为了并发设计的高性能内存分配组件,使用cache为当前线程提供无锁分配…...
第九届省赛——8等腰三角形(找规律)
题目:本题目要求你在控制台输出一个由数字组成的等腰三角形。具体的步骤是:1. 先用1,2,3,...的自然数拼一个足够长的串2. 用这个串填充三角形的三条边。从上方顶点开始,逆时针填充。比如,当三角形高度是8时:…...
【产品设计】ToB 增删改查显算传
入职培训时技术leader说:“我不需要你们太聪明,做好基础的增删改查就可以了。”看似很简单的活,要做好并不容易。基础的坑在哪里呢? 一、 增(新增、创建、导入) 1. 明确表字段类型 新增的业务是由不同类型…...
MySQL(二)视图、锁、存储过程、触发器、锁以及常用工具
MySQL进阶视图检查选项视图的更新存储过程存储过程基本语法变量系统变量用户自定义变量局部变量if判断参数casewhile循环repeat循环loop循环cursor游标handler条件处理程序存储函数触发器锁全局锁表级锁表锁元数据锁意向锁行级锁行锁间隙锁&临键锁InnoDB引擎逻辑存储结构事…...
CorelDRAW Graphics Suite2023更新内容介绍
懂设计的职场人都知道这款软件,CorelDRAW是一款非常高效的矢量图形设计软件。CorelDRAW操作界面简洁易懂,能够为用户提供精确地创建物体的尺寸和位置的功能,减少点击步骤,提高设计效率,节省设计时间。功能比普通的美图…...
2021牛客OI赛前集训营-提高组(第三场) T1变幻
2021牛客OI赛前集训营-提高组(第三场) 题目大意 对于一个大小为nnn的数组aaa的任意一点iii,若满足ai−1>aia_{i-1}>a_iai−1>ai且ai<ai1a_i<a_{i1}ai<ai1,则称iii为山谷点。111和nnn不可能为山谷点。…...
你还在使用if-else写代码吗,今天带你领略下策略模式的魅力!
1、什么是策略模式 策略模式其实也是在解耦,把策略的定义、创建、使用这三个部分解耦开来,因为本身策略模式也是基于接口编程,这样其实可以简单的理解客户端调用使用接口进行编程,可以通过工厂方法创建对应的策略模式,…...
Leetcode. 21 合并两个有序列表
尾插 核心思路:依次比较 ,取经过比较后较小值进行尾插 cur1 指向list1 ,cur 2指向list2 ,当cur1走完list1 或者cur2 走完list2 后停止 如果cur1走完list1 ,可以将cur2 整个拿下来尾插 如果cur2走完list2 ,可以将cur1 整个拿下来尾插 特殊情况 ࿱…...
使用 Wall 教你搭建 照片墙 和 视频墙
下载 Github:https://github.com/super-tongyao/wall 国内仓库(不推荐,只做加速访问,无编译包和发行版,以github仓库为准):https://gitee.com/Super_TongYao/wall 推荐github仓库,下载最新版…...
0103 MySQL06
1.事务 1.一个事务其实就是一个完整的业务逻辑 如:转账,从A账户向B账户转账10000,将A账户的钱减去10000(update),将B账户的钱加上10000(update),这就是一个完整的业务逻…...
【UE4 RTS游戏】04-摄像机运动_鼠标移动到视口边缘时移动Pawn
效果可以看到当鼠标移动到视口边缘时,Pawn就会向这个方向移动。步骤打开项目设置,添加两个操作映射打开“CameraPawnController”,在事件图表中添加两个浮点型变量,一个为公有一个为私有。分别命名为“ZoomSensitivity”、“MaxAr…...
147597-66-8,p-SCN-Bn-NOTA,NOTA-P-苯-NCS新型双功能螯合剂
p-SCN-Bn-NOTA | NOTA-P-苯-NCS | CAS:147597-66-8 | 纯度:95%1.p-SCN-Bn-NOTA试剂信息:CAS号:147597-66-8外观:白色固体分子量:C20H26N4O6S分子式:448.4928溶解性:溶于有机溶剂&…...
Qwen1.5-1.8B GPTQ开发环境配置:IntelliJ IDEA插件开发初探
Qwen1.5-1.8B GPTQ开发环境配置:IntelliJ IDEA插件开发初探 如果你是一名Java开发者,对AI大模型感兴趣,想在自己的IDE里搞点“智能”新花样,那么你来对地方了。今天我们不聊复杂的模型训练,也不讲高深的算法原理&…...
基于西门子S7-1200的换热站PLC与换热器程序,V16及以上博图WinCC画面组态,手自动...
换热站plc程序换热器程序 (22)采用西门子S7-1200博图WinCC画面组态,博图V16及以上版本都可以仿真运行,无需硬件。 系统带有手动/自动模式,运行数据动态实时显示,带温度实时曲线显示,…...
Origin绘图进阶:如何在现有图形上叠加散点图与等高线(附完整操作步骤)
Origin高级绘图技巧:散点图与等高线的完美叠加实战指南 科研数据可视化中,单一图表往往难以全面展示复杂数据关系。当您需要在同一坐标系中同时呈现离散数据点与连续趋势时,散点图与等高线的组合堪称黄金搭档。这种混合图表特别适合展现发动机…...
自动送料装车系统PLC控制的设计——24页
自动送料装车系统作为工业自动化领域的关键环节,其核心作用在于通过PLC(可编程逻辑控制器)实现物料输送、定位、装载等流程的精准控制。传统人工操作易受疲劳、环境等因素影响,导致效率波动与安全隐患。而PLC控制通过预设逻辑程序…...
ABAQUS UMAT子程序实现应变梯度塑性理论模拟损伤和断裂的分析 (包含的文件如图所示,p...
ABAQUS UMAT子程序实现应变梯度塑性理论模拟损伤和断裂的分析 (包含的文件如图所示,pdf详细介绍子程序的内容,公式等)在金属材料的断裂分析中,传统本构模型经常遇到网格敏感性问题。五年前我第一次尝试用应变梯度理论解决这个问题时ÿ…...
如何轻松突破Cursor试用限制:免费高效的终极解决方案
如何轻松突破Cursor试用限制:免费高效的终极解决方案 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Youve reached your trial request limit. / Too many free trial accounts used on this machine. Please upgrade to pro. We h…...
提升大语言模型对话体验:text-generation-webui全流程优化指南
提升大语言模型对话体验:text-generation-webui全流程优化指南 【免费下载链接】text-generation-webui A Gradio web UI for Large Language Models. Supports transformers, GPTQ, AWQ, EXL2, llama.cpp (GGUF), Llama models. 项目地址: https://gitcode.com/G…...
Unity LineRenderer不只是画线:5个实战案例教你做激光、轨迹与魔法特效
Unity LineRenderer实战进阶:从激光瞄准到魔法光束的5种创意实现 在Unity游戏开发中,LineRenderer常被简单地视为"画线工具",但它的潜力远不止于此。当我们将这个组件与物理系统、着色器技术和游戏逻辑相结合时,它能创造…...
实战调试:段页式内存管理中的首次页故障剖析
1. 段页式内存管理基础概念 段页式内存管理是现代操作系统的核心机制之一,它巧妙结合了分段和分页两种技术的优势。简单来说,就像我们整理衣柜时既按季节(分段)又用收纳盒(分页)来管理衣物。CPU看到的线性地…...
Shell脚本新手必看:6种方法彻底解决Undefined Variable报错(附代码示例)
Shell脚本变量报错终极指南:从根源解决Undefined Variable问题 在Linux系统管理和自动化运维中,Shell脚本是不可或缺的工具。但许多初学者在编写脚本时,经常会遇到"Undefined Variable"这类看似简单却令人头疼的报错。这种错误不仅…...
