| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> RocketMQ源码(1)—RocketMQ源码调试环境准备 -> 正文阅读 |
|
[大数据]RocketMQ源码(1)—RocketMQ源码调试环境准备 |
RocketMQ的源码这么多,我们肯定不会全部看完的,我们的源码分析主要会涉及到namesrv、broker、client、remoting、store等模块,也就是生产者、消费者、nameServr、Broker这几个角色的核心功能点。 在看RocketMQ源码之前,一定一定一定要先学会如何使用RocketMQ,建议通看官方文档: 首先我们尝试搭建RocketMQ的源码调试环境,这里不考虑任何集群环境,全部都是单机启动,首先是namesrv,然后是broker,最后启动生产者和消费者测试。 本源码基于RocketMQ 4.9.3版本。 1 下载源码包进入rocketmq官网https://github.com/apache/rocketmq,先fork源码到自己的仓库,然后,下载自己的仓库中fork的源码clone下来,这样就可以把自己写的源码注释上传到github了。 idea打开源码,会下载依赖,切换到4.9.3分支: 到此源码就下载下来了,看下结构: 可以看到很多的子module,简单介绍下:
2 配置目录我们首先配置ROCKETMQ_HOME的目录地址,这个目录就是专门用于存放配置文件的地方。我们直接在rocketmq的项目主目录下面新建一个config目录,作为ROCKETMQ_HOME的目录地址: 然后在config下面创建三个目录conf、logs、store,config用于存放配置文件,logd用于存放日志文件,store则用于消息存储。 然后我们将distribution模块下面的broker.conf、logback_namesrv.xml、logback_broker.xml这三个配置文件拷贝到此前创建的conf目录下: 拷贝到conf目录下: 然后我们修改broker.conf文件,添加如下配置:
注意上面的配置中的前缀路径填写自己创建的ROCKETMQ_HOME的目录,我的就是/Volumes/Samsung/Idea/rocketmq/config,我是mac系统,文件路径和windows的有些区别。 然后我们来修改日志文件的配置:
例如,替换前: 替换后: 3 启动namesrvnameserver是rocketmq的注册中心,提供名字服务,因此需要最先启动。找到namesrv模块的NamesrvStartup类,尝试直接运行main方法: 当然是无法启动的,控制台打印需要设置ROCKETMQ_HOME环境变量的提示信息:
这个ROCKETMQ_HOME变量是rocketmq的配置文件目录,实际上就是指的distribution模块里面的conf文件夹所在的目录,而我们之前已经单独配置了ROCKETMQ_HOME目录,所以此时我们配置那一个路径即可。 我们在idea中配置ROCKETMQ_HOME=/Volumes/Samsung/Idea/rocketmq/config的环境变量即可。 再次运行,可以在控制台看到启动的日志输出:
此时namesrv启动成功!同时在我们配置的logs目录下可以看到详细的启动日志。 4 启动brokernamesrv启动完毕后,下面我们启动rocketmq的broker服务。 broker通过broker模块里面的BrokerStartup类启动,同样,我们需要配置启动环境变量ROCKETMQ_HOME=/Volumes/Samsung/Idea/rocketmq/config。 同时,相比于namesrv的启动,多了一个启动参数的配置:-c /Volumes/Samsung/Idea/rocketmq/config/conf/broker.conf,后面的路径是我们配置的broker.conf配置文件的地址。 启动broker,可以看到启动成功的日志:
注意有时候broker并没有连上nameserver,但是控制台没有报错,因此需要在我们配置的logs目录下查看详细的启动日志来确定是否真的成功了。 查看broker.log日志: 5 启动管理后台管理后台项目不在主项目中,需要单独的下载,此前的Console项目已被重新命名为dashboard:https://github.com/apache/rocketmq-dashboard。 通过git clone下载下来后使用idea打开,可以看出来是一个spring boot项目: 修改application.yml配置文件中的namesrvAddrs配置,改为本地namesrv地址: 启动项目,在浏览器输入localhost:8080,即可看到管理后台界面: 6 快速案例rocketmq的源码中就已经提供了非常多的案例,在example模块中可以找到! 我们找到下面的quickstart包,里面有两个简单的测试类: 打开Producer类,可以看到里面是一个循环发送1000条消息的代码,非常简单,我们添加一行代码producer.setNamesrvAddr(“127.0.0.1:9876”);指定namesrv的地址: 运行生产者,可以看到控制台成功输出日志: 下面启动消费者,同样增加一行代码设置namesrv地址: 启动之后可以看到成功的消费了数据: 进入localhost:8080控制台,可以看到各种统计信息: 到此,我们的案例运行完毕,这证明我们的最小化rocketmq源码搭建并运行成功,此时,万事俱备只欠东风,后面我们将会开始真正的进入源码分析,期待着一起学习吧!
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 1:00:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |