RocketMQ 入门
what is rocketMQ:RocketMQ 是阿里开源的一款高性能、高吞吐量的分布式消息中间件。使用 RocketMQ 可以建立可靠的同步,异步和单向的消息传送。
RocketMQ 概念学习参看博文:十分钟入门RocketMQ,以及 官方文档。
rocketMQ 架构图:
image实践
环境搭建可参考:linux下搭建rocketmq
在 linux 系统中启动
重点说下 broker 的配置问题和启动,假设 name server 和 broker 都部署在同一台服务器上,broker 采用单 master 模式。假设服务器 IP 为 ...,我的 broker 的配置文件如下:
../../target/apache-rocketmq/conf
broker-test.conf
brokerClusterName = duan-cluster-test
brokerName = broker-test
brokerId = 0
brokerPort=10911
# 多网卡时指定 IP
brokerIP1=*.*.*.*
# NameServer地址列表,多个nameServer地址用分号隔开
namesrvAddr=*.*.*.*:9876
storePathRootDir = /data/rocketmq/store
storePathCommitLog = /data/rocketmq/store/commitlog
autoCreateTopicEnable = true
autoCreateSubscriptionGroup = true
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
配置好后先启动 name server,后启动 broker,注意在 broker 启动命令中指定配置文件:
nohup bin/mqbroker -c ./conf/broker-test.conf &> /data/rocketmq/logs/mqbroker.log &
成功启动后再日志中可看到 success 字样。
tail -f ~/logs/rocketmqlogs/broker.log
tail -f ~/logs/rocketmqlogs/namesrv.log
除了 broker 和 master 外 还会有一个 HAserver,该服务用于同步 master 和 slave 间 的数据。
spring-boot 项目学习 api 的简单使用
maven 依赖如下
这里写图片描述
测试用的配置文件
配置文件采用 yml 格式
rocketmq:
nameSrv:
address: *.*.*.*:9876
producer:
group:
test: rkmq-pro-group-one
consumer:
group:
test: rkmq-con-group-test
topic:
test: rkmq-topic-test
tag:
test: rkmq-tag-test
编写代码
父类
这里写图片描述
消息生产者
这里写图片描述消息消费者
这里写图片描述消息消费回调
这里写图片描述测试
用来测试的 bean
这里写图片描述
controller
这里写图片描述
通过 url 传递不同的参数来测试。
测试 url:http://localhost:8080/3?obj=数据来了
控制台输出:
数据来了 0
数据来了 1
msg received 数据来了
数据来了 2
msg received 数据来了
msg received 数据来了
rocketMQ-console:
这里写图片描述 这里写图片描述 这里写图片描述 这里写图片描述
可视化控制台可在这里获得 rocketMQ-console
网友评论