RocketMQ学习
概念理解:
NameServer(名字服务)
:
1.保存 Broker 的地址信息:每个 Broker 启动后会向 NameServer 注册自己的信息(IP、端口、topic、队列等)
2.提供路由信息给 Producer 和 Consumer:Producer 或 Consumer 想发送或消费消息时,会先去 NameServer 获取当前 topic 对应的 broker 路由信息,然后才能去对应的 broker 通信。
Broker(消息存储服务器)
:
1.接收 Producer 发送的消息并存储到磁盘。
2.接收 Consumer 的消息拉取请求,返回消息给 Consumer。
3.维持 topic、队列、消息偏移量等核心数据结构。
Topic(主题)
:
类似于消息的“主题”或“类别”,用于区分不同类型的消息。可以把它理解为一个消息的 分类标签。
运行流程:
- Broker 会向NameServer 注册自己的信息包括ip、端口、已经自己的topic、队列信息,
2.Producer会从NameServer上拿broker及对应的topic信息,根据topic发送消息到不同的broker上,
3.broker存储消息,
4.Consumer从对应的topic所在的broker上拉取消息消费
1.1 window测试
1.官网下载Binary包,解压到本地https://rocketmq.apache.org/zh/download
2.配置Rocketmq环境变量和Java环境变量
3.执行cmd命令
start mqnamesrv.cmd
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
//创建topic
start mqadmin.cmd updatetopic -n localhost:9876 -t TestTopic -c DefaultCluster
4.测试
官网下载Source包,解压,找到example下的quickstart下的两个类,先执行Producer再执行Consumer,即可看到效果
5.官网dashboard压缩包,打包成jar包,然后访问http://127.0.0.1:8080
java -jar rocketmq-dashboard-2.0.0.jar