RocketMQ-搭建服務

準備工作

新建虛擬機:VMware 、Linux鏡像(鏈接:https://pan.baidu.com/s/1Evyuyq8tuPI40X_0wt_S5Q 提取碼:uy2v)

(1):使用僅主機模式網絡、IP設置(保證物理機虛擬網卡可用、虛機IP設置與物理機物理網卡在同一網段,如果虛機需要上網,將物理機使用的網卡,設置爲共享即可)
在這裏插入圖片描述
(2):關於分配資源,根據自己物理機的情況來看

(3):虛機跑起來(Server模式)以後,Xshell連接訪問(便於工作)

軟件環境

RocketMQ服務搭建之前,虛機中應該已經有的應用:
1:JDK
我的習慣是先卸載掉OpenJDK,再安裝商用JDK(Oracle JDK)
1.1查看已經有的JDK

[root@rocketmq dev]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

1.2檢測JDK安裝包

[root@rocketmq dev]# rpm -qa|grep java
java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
tzdata-java-2017b-1.el7.noarch
python-javapackages-3.4.1-11.el7.noarch

1.3卸載openjdk

[root@rocketmq dev]# yum remove *openjdk*
[root@rocketmq dev]# rpm -qa|grep java
javapackages-tools-3.4.1-11.el7.noarch
tzdata-java-2017b-1.el7.noarch
python-javapackages-3.4.1-11.el7.noarch

1.4安裝自己的JDK
準備好jdk的包,rz到虛機,自己的目錄底下:

[root@rocketmq dev]# ll
total 181168
-rw-r--r--. 1 root root 185515842 Sep 27 02:44 jdk-8u144-linux-x64.tar.gz

解壓第一步:

[root@rocketmq dev]# tar -zxvf jdk-8u144-linux-x64.tar.gz  -C /home/jdk
[root@rocketmq dev]# ll /home/jdk
total 0
drwxr-xr-x. 8 10 143 255 Jul 22  2017 jdk1.8.0_144

配置環境變量:

[root@rocketmq dev]# vim /etc/profile
export JAVA_HOME=/home/jdk/jdk1.8.0_144
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

[root@rocketmq dev]# source /etc/profile
[root@rocketmq dev]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

2:maven安裝(用戶構建RocketMQ)
壓縮包上傳虛機、解壓、配置環境變量,過程同JDK一樣

export JAVA_HOME=/home/jdk/jdk1.8.0_144
export JRE_HOME=${JAVA_HOME}/jre
export MAVEN_HOME=/home/maven/apache-maven-3.6.3
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${MAVEN_HOME}/bin:$PATH

[root@rocketmq dev]# source /etc/profile
[root@rocketmq dev]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /home/maven/apache-maven-3.6.3
Java version: 1.8.0_144, vendor: Oracle Corporation, runtime: /home/jdk/jdk1.8.0_144/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"

本地倉庫配置

[root@rocketmq dev]# vim /home/maven/apache-maven-3.6.3/conf/settings.xml 
<localRepository>/home/maven/repository</localRepository>

阿里的私服配上

<mirror>  
  <id>alimaven</id>  
  <name>aliyun maven</name>  
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>          
</mirror>

插曲

Redhat 無法yum

[root@rocketmq dev]# yum repolist all
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
repolist: 0

卸載、換成國內的

[root@rocketmq dev]# rpm -qa |grep yum
yum-3.4.3-154.el7.noarch
yum-langpacks-0.4.2-7.el7.noarch
yum-rhn-plugin-2.0.1-9.el7.noarch
yum-utils-1.1.31-42.el7.noarch
PackageKit-yum-1.1.5-1.el7.x86_64
yum-metadata-parser-1.1.4-10.el7.x86_64
[root@rocketmq dev]# rpm -qa|grep yum|xargs rpm -e --nodeps
warning: /etc/yum/pluginconf.d/langpacks.conf saved as /etc/yum/pluginconf.d/langpacks.conf.rpmsave
[root@rocketmq dev]# rpm -qa |grep yum
[root@rocketmq dev]#
[root@rocketmq ~]# wget http://mirrors.163.com/centos/7.7.1908/os/x86_64/Packages/yum-3.4.3-163.el7.centos.noarch.rpm
[root@rocketmq ~]# wget http://mirrors.163.com/centos/7.7.1908/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-52.el7.noarch.rpm
[root@rocketmq ~]# wget http://mirrors.163.com/centos/7.7.1908/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
[root@rocketmq ~]# wget http://mirrors.163.com/centos/7.7.1908/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm

根據自己的虛機系統版本,找可用的yum源
下載好以後:

[root@rocketmq ~]# ll |grep rpm
-rw-r--r--. 1 root root   39800 Jul  4  2014 python-iniparse-0.4-9.el7.noarch.rpm
-rw-r--r--. 1 root root 1297332 Aug 23  2019 yum-3.4.3-163.el7.centos.noarch.rpm
-rw-r--r--. 1 root root   28348 Jul  4  2014 yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
-rw-r--r--. 1 root root   34744 Aug 23  2019 yum-plugin-fastestmirror-1.1.31-52.el7.noarch.rpm

最重要的是yum開頭的而幾個

修改配置文件:

[root@rocketmq ~]# vim  /etc/yum.repos.d/rhel-debuginfo.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.163.com/centos/7.7.1908/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/7.7.1908/os/x86_64/RPM-GPG-KEY-CentOS-7

# released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.163.com/centos/7.7.1908/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/7.7.1908/os/x86_64/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.163.com/centos/7.7.1908/extras//$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/7.7.1908/os/x86_64/RPM-GPG-KEY-CentOS-7

[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.163.com/centos/7.7.1908/centosplus//$basearch/
gpgcheck=1
enabled=0

更新yum

[root@rocketmq dev]# yum makecache

Apache RocketMQ推薦unzip解壓,所以必須先install zip unzip

[root@rocketmq dev]# yum install zip unzip

安裝我需要的uzip和zip

[root@rocketmq dev]# yum install zip unzip
[root@rocketmq dev]# yum list|grep zip.x86
gzip.x86_64                             1.5-9.el7                  @anaconda/7.4
unzip.x86_64                            6.0-20.el7                 @base        
zip.x86_64                              3.0-11.el7                 @anaconda/7.4

3:RocketMQ安裝
3.1下載解壓第一步(我選擇從Apache上取,當然也可以從github clone源碼,那就必須再裝git嘍):

[root@rocketmq dev]# unzip rocketmq-all-4.3.0-source-release.zip 

3.2 構建

[root@rocketmq rocketmq-all-4.3.0]# pwd
/home/rocketmq/rocketmq-all-4.3.0
[root@rocketmq rocketmq-all-4.3.0]# mvn -Prelease-all -DskipTests clean install -U

構建成功的樣子(大概5min)

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Apache RocketMQ 4.3.0 4.3.0:
[INFO] 
[INFO] Apache RocketMQ 4.3.0 .............................. SUCCESS [01:40 min]
[INFO] rocketmq-logging 4.3.0 ............................. SUCCESS [  9.163 s]
[INFO] rocketmq-remoting 4.3.0 ............................ SUCCESS [  4.294 s]
[INFO] rocketmq-common 4.3.0 .............................. SUCCESS [  4.116 s]
[INFO] rocketmq-client 4.3.0 .............................. SUCCESS [  7.341 s]
[INFO] rocketmq-store 4.3.0 ............................... SUCCESS [  5.031 s]
[INFO] rocketmq-srvutil 4.3.0 ............................. SUCCESS [  2.223 s]
[INFO] rocketmq-filter 4.3.0 .............................. SUCCESS [  1.924 s]
[INFO] rocketmq-broker 4.3.0 .............................. SUCCESS [  5.308 s]
[INFO] rocketmq-tools 4.3.0 ............................... SUCCESS [  3.220 s]
[INFO] rocketmq-namesrv 4.3.0 ............................. SUCCESS [  1.334 s]
[INFO] rocketmq-logappender 4.3.0 ......................... SUCCESS [  2.167 s]
[INFO] rocketmq-openmessaging 4.3.0 ....................... SUCCESS [  2.094 s]
[INFO] rocketmq-example 4.3.0 ............................. SUCCESS [  1.339 s]
[INFO] rocketmq-test 4.3.0 ................................ SUCCESS [  5.980 s]
[INFO] rocketmq-distribution 4.3.0 ........................ SUCCESS [01:22 min]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  04:00 min
[INFO] Finished at: 2020-03-22T17:25:27+08:00
[INFO] ------------------------------------------------------------------------

修改日誌的默認路徑

[root@rocketmq apache-rocketmq]# vim conf/logback_namesrv.xml 
:%s/${user.home}/\/home\/rocketmq/g

我將namesrv和broker默認的日誌地址都改了

測試

啓動namesrv

[root@rocketmq apache-rocketmq]# nohup sh bin/mqnamesrv &
[root@rocketmq dev]# tail -f  /home/rocketmq/logs/rocketmqlogs/namesrv.log 
2020-03-22 18:20:23 INFO main - tls.client.certPath = null
2020-03-22 18:20:23 INFO main - tls.client.authServer = false
2020-03-22 18:20:23 INFO main - tls.client.trustCertPath = null
2020-03-22 18:20:24 INFO main - Using OpenSSL provider
2020-03-22 18:20:24 INFO main - SSLContext created for server
2020-03-22 18:20:24 INFO NettyEventExecutor - NettyEventExecutor service started
2020-03-22 18:20:24 INFO main - The Name Server boot success. serializeType=JSON
2020-03-22 18:20:24 INFO FileWatchService - FileWatchService service started
2020-03-22 18:21:24 INFO NSScheduledThread1 - --------------------------------------------------------
2020-03-22 18:21:24 INFO NSScheduledThread1 - configTable SIZE: 0

看到"The Name Server boot success. serializeType=JSON",說明啓動成功了!

啓動broker

[root@rocketmq apache-rocketmq] nohup sh bin/mqbroker -n localhost:9876 &

發現並沒有日誌生成,nohup的異常日誌中有輸出:

[root@rocketmq apache-rocketmq]# cat nohup.out 
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.
The Name Server boot success. serializeType=JSON
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 8589934592 bytes for committing reserved memory.
# An error report file with more information is saved as:

啓動配置的JVM可能太大了,那就給參數調小,在哪調整呢?

[root@rocketmq apache-rocketmq]# ll ./bin/ |grep run*
-rwxr-xr-x. 1 root root  819 Jul 26  2018 runbroker
-rwxr-xr-x. 1 root root 2206 Jul 26  2018 runbroker.cmd
-rwxr-xr-x. 1 root root 2869 Jul 26  2018 runbroker.sh
-rwxr-xr-x. 1 root root 1816 Jul 26  2018 runserver.cmd
-rwxr-xr-x. 1 root root 2443 Jul 26  2018 runserver.sh

runserver.sh

#===========================================================================================
# JVM Configuration
#===========================================================================================
#JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn125m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8  -XX:-UseParNewGC"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/rmq_srv_gc.log -XX:+PrintGCDetails"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JAVA_OPT="${JAVA_OPT}  -XX:-UseLargePages"
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib"
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"

runbroker.sh

#===========================================================================================
# JVM Configuration
#===========================================================================================
#JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn125m"
JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/mq_gc_%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy"
JAVA_OPT="${JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JAVA_OPT="${JAVA_OPT} -XX:+AlwaysPreTouch"
JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=15g"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages -XX:-UseBiasedLocking"
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib"
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"

保存修改,再次啓動namesrv

[root@rocketmq apache-rocketmq]# nohup sh bin/mqnamesrv &

再次看到啓動成功的標誌:

2020-03-22 18:44:30 INFO main - The Name Server boot success. serializeType=JSON

broker

[root@rocketmq apache-rocketmq]# nohup sh bin/mqbroker -n localhost:9876 &
[root@rocketmq rocketmqlogs]# tail -f  /home/rocketmq/logs/rocketmqlogs/broker.log 
2020-03-22 18:45:02 WARN main - Load default transaction message hook service: TransactionalMessageServiceImpl
2020-03-22 18:45:02 WARN main - Load default discard message hook service: DefaultTransactionalMessageCheckListener
2020-03-22 18:45:02 INFO PullRequestHoldService - PullRequestHoldService service started
2020-03-22 18:45:02 INFO FileWatchService - FileWatchService service started
2020-03-22 18:45:03 INFO brokerOutApi_thread_1 - register broker to name server localhost:9876 OK
2020-03-22 18:45:03 INFO main - Start transaction service!
2020-03-22 18:45:03 INFO main - The broker[rocketmq, 192.168.23.168:10911] boot success. serializeType=JSON and name server is localhost:9876
2020-03-22 18:45:12 INFO BrokerControllerScheduledThread1 - dispatch behind commit log 0 bytes
2020-03-22 18:45:12 INFO BrokerControllerScheduledThread1 - Slave fall behind master: 0 bytes
2020-03-22 18:45:13 INFO brokerOutApi_thread_2 - register broker to name server localhost:9876 OK
2020-03-22 18:45:43 INFO brokerOutApi_thread_3 - register broker to name server localhost:9876 OK
2020-03-22 18:46:03 INFO TransactionalMessageCheckService - create new topic TopicConfig [topicName=RMQ_SYS_TRANS_HALF_TOPIC, readQueueNums=1, writeQueueNums=1, perm=RW-, topicFilterType=SINGLE_TAG, topicSysFlag=0, order=false]
2020-03-22 18:46:03 INFO brokerOutApi_thread_4 - register broker to name server localhost:9876 OK
2020-03-22 18:46:12 INFO BrokerControllerScheduledThread1 - dispatch behind commit log 0 bytes
2020-03-22 18:46:12 INFO BrokerControllerScheduledThread1 - Slave fall behind master: 0 bytes
2020-03-22 18:46:13 INFO brokerOutApi_thread_1 - register broker to name server localhost:9876 OK
2020-03-22 18:46:43 INFO brokerOutApi_thread_2 - register broker to name server localhost:9876 OK
2020-03-22 18:47:12 INFO BrokerControllerScheduledThread1 - dispatch behind commit log 0 bytes
2020-03-22 18:47:12 INFO BrokerControllerScheduledThread1 - Slave fall behind master: 0 bytes
2020-03-22 18:47:13 INFO brokerOutApi_thread_3 - register broker to name server localhost:9876 OK

OK,broker也啓動成功了!

終於可以RocketMQ 的HelloWorld

進入指定目錄:

[root@rocketmq apache-rocketmq]# pwd
/home/rocketmq/rocketmq-all-4.3.0/distribution/target/apache-rocketmq

生產者和消費者在同一個terminal 窗口執行,否則看不到效果呢!

Producer demo:

[root@rocketmq apache-rocketmq]# export NAMESRV_ADDR=localhost:9876
[root@rocketmq apache-rocketmq]# sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
19:00:11.944 [main] DEBUG i.n.u.i.l.InternalLoggerFactory - Using SLF4J as the default logging framework
SendResult [sendStatus=SEND_OK, msgId=C0A817A8D37C7D4991AD7039701F0000, offsetMsgId=C0A817A800002A9F000000000002BEB2, messageQueue=MessageQueue [topic=TopicTest, brokerName=rocketmq, queueId=0], queueOffset=250]
SendResult [sendStatus=SEND_OK, msgId=C0A817A8D37C7D4991AD7039703E0001, offsetMsgId=C0A817A800002A9F000000000002BF64, messageQueue=MessageQueue [topic=TopicTest, brokerName=rocketmq, queueId=1], queueOffset=250]
SendResult [sendStatus=SEND_OK, msgId=C0A817A8D37C7D4991AD703970420002, offsetMsgId=C0A817A800002A9F000000000002C016, messageQueue=MessageQueue [topic=TopicTest, brokerName=rocketmq, queueId=2], queueOffset=250]
SendResult [sendStatus=SEND_OK, msgId=C0A817A8D37C7D4991AD7039704D0003, offsetMsgId=C0A817A800002A9F000000000002C0C8, messageQueue=MessageQueue [topic=TopicTest, brokerName=rocketmq, queueId=3], queueOffset=250]
……………………………………………………………………………………………………………

Consumer demo:

[root@rocketmq apache-rocketmq]# sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
19:00:24.804 [main] DEBUG i.n.u.i.l.InternalLoggerFactory - Using SLF4J as the default logging framework
Consumer Started.
ConsumeMessageThread_1 Receive New Messages: [MessageExt [queueId=1, storeSize=178, queueOffset=250, sysFlag=0, bornTimestamp=1584874812478, bornHost=/192.168.23.168:35028, storeTimestamp=1584874812480, storeHost=/192.168.23.168:10911, msgId=C0A817A800002A9F000000000002BF64, commitLogOffset=180068, bodyCRC=1401636825, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0, properties={MIN_OFFSET=0, MAX_OFFSET=500, CONSUME_START_TIME=1584874825406, UNIQ_KEY=C0A817A8D37C7D4991AD7039703E0001, WAIT=true, TAGS=TagA}, body=[72, 101, 108, 108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 49], transactionId='null'}]] 
ConsumeMessageThread_2 Receive New Messages: [MessageExt [queueId=1, storeSize=178, queueOffset=251, sysFlag=0, bornTimestamp=1584874812508, bornHost=/192.168.23.168:35028, storeTimestamp=1584874812511, storeHost=/192.168.23.168:10911, msgId=C0A817A800002A9F000000000002C22C, commitLogOffset=180780, bodyCRC=1424393152, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0, properties={MIN_OFFSET=0, MAX_OFFSET=500, CONSUME_START_TIME=1584874825419, UNIQ_KEY=C0A817A8D37C7D4991AD7039705C0005, WAIT=true, TAGS=TagA}, body=[72, 101, 108, 108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 53], transactionId='null'}]] 
ConsumeMessageThread_3 Receive New Messages: [MessageExt [queueId=1, storeSize=178, queueOffset=252, sysFlag=0, bornTimestamp=1584874812528, bornHost=/192.168.23.168:35028, storeTimestamp=1584874812529, storeHost=/192.168.23.168:10911, msgId=C0A817A800002A9F000000000002C4F4, commitLogOffset=181492, bodyCRC=1565577195, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0, properties={MIN_OFFSET=0, MAX_OFFSET=500, CONSUME_START_TIME=1584874825431, UNIQ_KEY=C0A817A8D37C7D4991AD703970700009, WAIT=true, TAGS=TagA}, body=[72, 101, 108, 108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 57], transactionId='null'}]] 
ConsumeMessageThread_4 Receive New Messages: [MessageExt [queueId=1, storeSize=179, queueOffset=253, sysFlag=0, bornTimestamp=1584874812560, bornHost=/192.168.23.168:35028, storeTimestamp=1584874812561, storeHost=/192.168.23.168:10911, msgId=C0A817A800002A9F000000000002C7BF, commitLogOffset=182207, bodyCRC=311324588, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0, properties={MIN_OFFSET=0, MAX_OFFSET=500, CONSUME_START_TIME=1584874825444, UNIQ_KEY=C0A817A8D37C7D4991AD70397090000D, WAIT=true, TAGS=TagA}, body=[72, 101, 108, 108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 49, 51], transactionId='null'}]] 
……………………………………………………………………………………………………………

這就算完成了RocketMQ服務的搭建,還有怎麼停下服務呢?

關掉broker:

[root@rocketmq distribution]# sh bin/mqshutdown broker
The mqbroker(53673) is running...
Send shutdown request to mqbroker(53673) OK
[root@rocketmq distribution]# pwd
/home/rocketmq/rocketmq-all-4.3.0/distribution

關掉namesrv:

[root@rocketmq distribution]# sh bin/mqshutdown namesrv
The mqnamesrv(53647) is running...
Send shutdown request to mqnamesrv(53647) OK
[root@rocketmq distribution]# ps -ef|grep java
root      54571  53817  0 19:26 pts/0    00:00:00 grep --color=auto java

能起能停,才能收放自如。接下來,就可以寫代碼嘍!!!!!!!!!!!!!!!!!!!!
具體的使用,後續應該會有續章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章