download:
http://rocketmq.apache.org/dowloading/releases/
https://archive.apache.org/dist/rocketmq/4.3.2/rocketmq-all-4.3.2-bin-release.zip
[root@localhost opt]# mv /root/rocketmq-all-4.3.2-bin-release.zip /opt/
[root@localhost opt]# unzip rocketmq-all-4.3.2-bin-release.zip
[root@localhost opt]# mv rocketmq-all-4.3.2-bin-release rocketmq
#调整默认的内存大小参数
[root@localhost opt]# vim bin/runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m -XX:MetaspaceSize=128m -
XX:MaxMetaspaceSize=128m"
[root@localhost opt]# vim bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m"
# 1、启动nameserver
[root@localhost opt]# bin/mqnamesrv
或
[root@localhost opt]# nohup bin/mqnamesrv -n 192.168.168.168:9876 >>/dev/null 2>&1 &
日志目录:~/logs/rocketmqlogs/namesrv.log
# 2、启动broker;-n 指定nameserver地址和端口
[root@localhost opt]# bin/mqbroker -n 192.168.168.168:9876
或
在conf/broker.conf 中 加入 brokerIP1=你的IP
[root@localhost opt]# nohup sh bin/mqbroker -n 192.168.168.168:9876 -c conf/broker.conf autoCreateTopicEnable=true >>/dev/null 2>&1 &
日志目录:~/logs/rocketmqlogs/broker.log
如上启动可避免如下错误:
org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout
# 3、rocketmq服务关闭
关闭namesrv服务:sh bin/mqshutdown namesrv
关闭broker服务 :sh bin/mqshutdown broker
sh mqadmin updateTopic -n 192.168.168.168:6789 -c Test-Cluster -t TEST_TOPIC
sh mqadmin updateSubGroup -n 192.168.168.168:6789 -c Test-Cluster -g TESTConsumer
mqadmin updateTopic -b 192.168.100.100:10911 -n 192.168.100.100:9876 -t TopicTest
启动没有异常检查nameserver中是否成功注册了broker,有两种方式 :
第一种:查看broker的日志
[root@localhost ]# tail -n10 ~/logs/rocketmqlogs/broker.log
第二种、 mqadmin
[root@localhost bin]# sh mqadmin clusterList -n 192.168.100.100:9876
Producer
消息生产者,负责产生消息,一般由业务系统负责产生消息。
Producer Group
一类 Producer 的集合名称,这类 Producer 通常发送一类消息,且发送逻辑一致。
Consumer
消息费者,负责消费消息,一般是后台系统负责异步消费。
Push Consumer
服务端向消费者端推送消息。
Pull Consumer
消费者端向服务定时拉取消息。
Consumer Group
一类 Consumer 的集合名称,这类 Consumer 通常消费一类消息,且消费逻辑一致。
NameServer
集群架构中的组织协调员,收集broker的工作情况,不负责消息的处理。
Broker
是RocketMQ的核心,负责消息的发送、接收、高可用等,需要定时发送自身情况到NameServer,默认10秒发送一次,超时2分钟会认为该broker失效。
Topic
不同类型的消息以不同的Topic名称进行区分,如User、Order等是逻辑概念。
Message Queue
消息队列,用于存储消息。
download rocket-console
https://github.com/apache/rocketmq-externals
修改
…\rocketmq-console\src\main\resources\application.properties文件
阅读README.md
mvn clean package -Dmaven.test.skip=true
java -jar target/rocketmq-console-ng-1.0.1.jar
start rocket-console
nohup java -jar rocketmq-console-ng-1.0.1.jar > /dev/null 2>&1 &
访问控制台
192.168.168.168:8080
三、源码测试
github地址:https://github.com/apache/rocketmq
常用命令说明:
[root@localhost bin]# ./mqnamesrv --help
Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
Java HotSpot(TM) 64-Bit Server VM warning: MaxNewSize (131072k) is equal to or greater than the entire heap (131072k). A new max generation size of 131008k will be used.
usage: mqnamesrv [-c <arg>] [-h] [-n <arg>] [-p]
-c,--configFile <arg> Name server config properties file
-h,--help Print help
-n,--namesrvAddr <arg> Name server address list, eg: 192.168.0.1:9876;192.168.0.2:9876
-p,--printConfigItem Print all config item
[root@localhost bin]# ./mqbroker --help
usage: mqbroker [-c <arg>] [-h] [-m] [-n <arg>] [-p]
-c,--configFile <arg> Broker config properties file
-h,--help Print help
-m,--printImportantConfig Print important config item
-n,--namesrvAddr <arg> Name server address list, eg: 192.168.0.1:9876;192.168.0.2:9876
-p,--printConfigItem Print all config item