运行原理图
NameServer:相当于一个注册中心,把所有信息注册到其中
Broker:存储消息的
Producer:消息生产者
Consumer:消费者
总结:首先启动NameServer,然后启动Borker把ip地址等信息注册到NameServer中,消息生产者通过去NameServer中找到对应的ip,从而找到我们的Broker,然后把消息存储到Broker中,消费者同样到NameServer中找对应的需要消费的IP,然后找到对应的Broker进行消息的消费。
Linux下简单测试
启动名称服务器
命令:nohup sh bin/mqnamesrv &
查看状态:tail -f ~/logs/rocketmqlogs/namesrv.log
显示:The Name Server boot success…
启动经纪人
命令:nohup sh bin/mqbroker -n localhost:9876 &
查看状态:tail -f ~/logs/rocketmqlogs/broker.log
显示:The broker[%s, 172.30.30.233:10911] boot success…
发送和接收消息
在发送/接收消息之前,我们需要告诉客户端名称服务器的位置。RocketMQ 提供了多种方法来实现这一点。为简单起见,我们使用环境变量NAMESRV_ADDR
命令:export NAMESRV_ADDR=localhost:9876
查看状态:sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
显示:SendResult [sendStatus=SEND_OK, msgId= …
命令:sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
显示: ConsumeMessageThread_%d Receive New Messages: [MessageExt…
关闭服务器
命令:sh bin/mqshutdown broker
显示:The mqbroker(36695) is running…
Send shutdown request to mqbroker(36695) OK
命令: sh bin/mqshutdown namesrv
显示:The mqnamesrv(36664) is running…
Send shutdown request to mqnamesrv(36664) OK
补充:
如需远程连接
配置broker.conf文件
brokerIP1=外网服务器ip
namesrvAddr=外网服务器ip:9876
指定文件broker.conf启动
nohup sh bin/mqnamesrv & tail -f nohup.out
nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.conf & tail -f nohup.out