RocketMQ Getting Started
RocketMQ is a distributed open source message queuing system developed by Alibaba, and it is a distributed message middleware with low latency, high concurrency, high availability and high reliability.
If you have installed Websoft9 RocketMQ, the following steps is for your quick start
Preparation
- Get the Internet IP of your Server on Cloud
- Check your Inbound of Security Group Rule of Cloud Console to ensure the TCP:9876 is allowed
- Get default username and password of RocketMQ
- Complete Five steps for Domain if you want to use Domain for RocketMQ
RocketMQ Initialization
Steps for you
- Use SSH to connect RocketMQ and run the following commands to check for the status of RocketMQ
sudo systemctl status mqnamesrv
sudo systemctl status mqbroker - Use local Chrome or Firefox to access RocketMQ-Console to verify more
Having trouble?
Below is for you to solve problem, and you can contact Websoft9 Support or refer to Troubleshoot + FAQ to get more.
RocketMQ QuickStart
This chapter we will introduce a details for you how to use RocketMQ to send messages (producer) and consume messages(consumer)
-
Explain the tools or procedures required for the experiment
- producer: /data/rocketmq/bin/tools.sh
- consumer: /data/rocketmq/bin/tools.sh
- Messages: produce from the Java Class
org.apache.rocketmq.example.quickstart.Producer
- Messages storage: RabbitMQ Broker
- Message order management: NAMESRV_ADDR
-
Use SSH to connect RocketMQ Server, run the following command to send message as producer.
export NAMESRV_ADDR=localhost:9876
cd /data/rocketmq/bin
sh tools.sh org.apache.rocketmq.example.quickstart.Producer -
You can see the feedback message SendResult [sendStatus=SEND_OK, msgId= ... when send successfully
-
Run the following command to send message as consumer.
cd /data/rocketmq/bin
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer -
You can see the feedback message ConsumeMessageThread_%d Receive New Messages: [MessageExt... when receive successfully
-
Login to GUI tool RocketMQ-Console to query more information
More guide about RocketMQ, please refer to RocketMQ Documentation.
RocketMQ Setup
Message sample
Refer to the docsRocketMQ QuickStart to send message and receive message
Web-based GUI
RocketMQ external project have Web-based GUI tool RocketMQ-Console-NG to manage RocketMQ, this deployment solution have installed by default.
-
Use local Chrome or Firefox to access the URL: http://Server's Internet IP:9003 to it
-
Log in RocketMQ-Console-Ng console (Don't have password?) and enter to the console interface.
-
Set your language
-
You can refer to official docs UserGuide for more experience
Modify the password of RocketMQ-Console
Modify the password for the file:/etc/nginx/.htpasswd/htpasswd.conf and restart Nginx service
修改 RocketMQ 运行内存
分别修改如下两个配置文件:
- rocketmq/bin/runserver.sh 文件中 Java 启动内存大小(非必要)
- /data/rocketmq/bin/runbroker.sh 文件中 Java 启动内存大小(非必要)
Reference sheet
The RocketMQ deployment package contains Nginx, Docker, etc. The below items and General parameter sheet is maybe useful for you manage RocketMQ
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Path
RocketMQ installation directory: /data/rocketmq
RocketMQ logs directory: /data/logs/rocketmq
RocketMQ configuration file: /data/config/rocketmq
Port
Port | Use | Necessity |
---|---|---|
9003 | HTTP to access RocketMQ-Console-Ng | Optional |
9876 | RocketMQ Broker Server | Required |
Version
ls /data/rocketmq/lib |grep rocketmq-broker
Service
sudo systemctl start | stop | restart | status mqnamesrv
sudo systemctl start | stop | restart | status mqbroker
sudo docker start | stop | restart | status rocketmq-console
CLI
RocketMQ provides a powerful cli tool mqadmin
$ mqadmin
The most commonly used mqadmin commands are:
updateTopic Update or create topic
deleteTopic Delete topic from broker and NameServer.
updateSubGroup Update or create subscription group
deleteSubGroup Delete subscription group from broker.
updateBrokerConfig Update broker's config
updateTopicPerm Update topic perm
topicRoute Examine topic route info
topicStatus Examine topic Status info
topicClusterList get cluster info for topic
brokerStatus Fetch broker runtime status data
queryMsgById Query Message by Id
queryMsgByKey Query Message by Key
queryMsgByUniqueKey Query Message by Unique key
queryMsgByOffset Query Message by offset
QueryMsgTraceById query a message trace
printMsg Print Message Detail
printMsgByQueue Print Message Detail
sendMsgStatus send msg to broker.
brokerConsumeStats Fetch broker consume stats data
producerConnection Query producer's socket connection and client version
consumerConnection Query consumer's socket connection, client version and subscription
consumerProgress Query consumers's progress, speed
consumerStatus Query consumer's internal data structure
cloneGroupOffset clone offset from other group.
clusterList List all of clusters
topicList Fetch all topic list from name server
updateKvConfig Create or update KV config.
deleteKvConfig Delete KV config.
wipeWritePerm Wipe write perm of broker in all name server
resetOffsetByTime Reset consumer offset by timestamp(without client restart).
updateOrderConf Create or update or delete order conf
cleanExpiredCQ Clean expired ConsumeQueue on broker.
cleanUnusedTopic Clean unused topic on broker.
startMonitoring Start Monitoring
statsAll Topic and Consumer tps stats
allocateMQ Allocate MQ
checkMsgSendRT check message send response time
clusterRT List All clusters Message Send RT
getNamesrvConfig Get configs of name server.
updateNamesrvConfig Update configs of name server.
getBrokerConfig Get broker config by cluster or special broker!
queryCq Query cq command.
sendMessage Send a message
consumeMessage Consume message
updateAclConfig Update acl config yaml file in broker
deleteAccessConfig Delete Acl Config Account in broker
clusterAclConfigVersion List all of acl config version information in cluster
updateGlobalWhiteAddr Update global white address for acl Config File in broker
getAccessConfigSubCommand List all of acl config information in cluster
See 'mqadmin help <command>' for more information on a specific command.