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