網(wǎng)站首頁 編程語言 正文
前言
發(fā)現(xiàn)公司這邊的消息中間件采用了aliyun的RocketMQ服務(wù),熟悉開源的同學(xué)都知道,RocketMQ是國內(nèi)最早一批捐獻(xiàn)Apache并成功畢業(yè)的項目。架構(gòu)設(shè)計參考了kafka的模式,所以如果你了解kafka的架構(gòu),對于RocketMQ就可以輕車熟路了,雖然參考了kafka,但是RocketMQ也有很多的升級,比如Broker的注冊和發(fā)現(xiàn)就采用了內(nèi)部的NameServer,沒有引入更多的第三方依賴,而且添加了諸如消息回溯、事務(wù)消息、延時消息等特色功能。由于之前沒有接觸過RocketMQ(之前一直用的kafka和RabbitMQ),準(zhǔn)備研究一番,也為了后面集成spring boot metrics監(jiān)控RocketMQ客戶端信息做準(zhǔn)備。研究一個開源項目,最好的方法就是Debug,所以記錄下本地搭建RocketMq的調(diào)試環(huán)境過程
生成安裝包
項目地址:https://github.com/apache/rocketmq?,從這個地址下載項目后,導(dǎo)入到IDEA開發(fā)工具,執(zhí)行mvn install,生成安裝RocketMQ包,生成成功后,在distribution模塊下,會有如下目錄,這個目錄等下會用到
啟動NameServer
找到namesrv模塊,運行NamesrvStartup的main方法,這個時候會提示你,需要設(shè)置ROCKETMQ_HOME,提示信息如下:
這個時候就需要第一步生成的目錄,
拷貝/Users/kl/githubnamespace/rocketmq/distribution/target/rocketmq-4.7.1/rocketmq-4.7.1目錄
在IDEA的運行設(shè)置界面,添加如下參數(shù):
-Drocketmq.home.dir=/Users/kl/githubnamespace/rocketmq/distribution/target/rocketmq-4.7.1/rocketmq-4.7.1
如:
然后在啟動,就可以成功啟動了
啟動broker
參照啟動NameServer的模式,找到borker模塊,設(shè)置好ROCKETMQ_HOME,在用相同的方式采用-D方式,配置下NameServer的地址,如:
-Drocketmq.namesrv.addr=127.0.0.1:9876
然后啟動即可,此時一個完整的跑在IDEA中的單節(jié)點架構(gòu)的RocketMQ服務(wù)就搭建好了
安裝RocketMQ Console
為了更好的觀察了解RocketMQ的功能,可以安裝一個web管理控制臺,這個需要用到另一個項目
項目地址:https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console
安裝成功后,就可以通過web頁面查詢producer發(fā)送的message信息,打開瀏覽器,輸入:http://localhost:8080。就可以看到如下頁面:
盡情的DEBUG
一切準(zhǔn)備就緒后,可以找到項目的example模塊,里面內(nèi)置了各種特性功能的使用案例,接下來就可以一個一個案例Runing起來,盡情的Deubg
原文鏈接:http://www.kailing.pub/article/index/arcid/315.html
相關(guān)推薦
- 2022-04-05 解決IDEA .properties文件中文亂碼的問題
- 2022-07-20 字符串和內(nèi)存函數(shù)
- 2022-09-21 Golang?channel為什么不會阻塞的原因詳解_Golang
- 2022-07-11 Cadence中denalirc的用法總結(jié)
- 2023-01-23 C++中引用處理的基本方法_C 語言
- 2023-04-10 基于Python實現(xiàn)錄音功能的示例代碼_python
- 2024-07-15 arthas操作spring被代理目標(biāo)對象命令速查
- 2022-07-21 Error: rsync: [sender] safe_read failed to read 4
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支