環(huán)境
阿里云:centos7服務(wù)器
1. 下載源碼
wget htt://mirrors.hust.edu.cn/apache/rocketmq/4.3.0/rocketmq-all-4.3.0-source-release.zip
2. 構(gòu)建
> unzip rocketmq-all-4.3.0-source-release.zip
> cd rocketmq-all-4.3.0/
> mvn -Prelease-all -DskipTests clean install -U
> cd distribution/target/apache-rocketmq
3. 啟動(dòng)名稱服務(wù)器
> nohup sh bin/mqnamesrv &
> tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
如果在啟動(dòng)服務(wù)器的時(shí)候報(bào):
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006c0000000, 2147483648, 0) failed; error='Cannot allocate memory' (errno=12)
那么需要調(diào)整rocketMQ的內(nèi)存
> vim bin/runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx256m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=320m"
-Xms 的值一定要比 -Xmx 要小不讓谎柄,也會報(bào)錯(cuò):如下
Initial heap size set to a larger value than the maximum heap size
設(shè)置好后啟動(dòng)筝野,
# 啟動(dòng)日志
? ? root@iZbp1a727tp99dumb5yskuZ ~/download/rocketmq-all-4.3.0/distribution/target/apache-rocketmq tail -f ~/logs/rocketmqlogs/namesrv.log
2018-09-26 11:28:48 INFO main - tls.client.keyPath = null
2018-09-26 11:28:48 INFO main - tls.client.keyPassword = null
2018-09-26 11:28:48 INFO main - tls.client.certPath = null
2018-09-26 11:28:48 INFO main - tls.client.authServer = false
2018-09-26 11:28:48 INFO main - tls.client.trustCertPath = null
2018-09-26 11:28:49 INFO main - Using OpenSSL provider
2018-09-26 11:28:49 INFO main - SSLContext created for server
2018-09-26 11:28:49 INFO NettyEventExecutor - NettyEventExecutor service started
2018-09-26 11:28:49 INFO main - The Name Server boot success. serializeType=JSON
2018-09-26 11:28:49 INFO FileWatchService - FileWatchService service started
4. 啟動(dòng)broker
# autoCreateTopicEnable=true 參數(shù)可以在啟動(dòng)Broker時(shí)指定自動(dòng)創(chuàng)建Topic:
> nohup sh bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true &
> tail -f ~/logs/rocketmqlogs/broker.log
The broker[%s, ip:port] boot success...
如果在啟動(dòng)服務(wù)器的時(shí)候報(bào):
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)
那么需要調(diào)整broker的內(nèi)存
> vim bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
設(shè)置好后啟動(dòng)倍啥,
# 啟動(dòng)日志
2018-09-26 11:35:51 WARN main - Load default transaction message hook service: TransactionalMessageServiceImpl
2018-09-26 11:35:51 WARN main - Load default discard message hook service: DefaultTransactionalMessageCheckListener
2018-09-26 11:35:52 INFO FileWatchService - FileWatchService service started
2018-09-26 11:35:52 INFO PullRequestHoldService - PullRequestHoldService service started
2018-09-26 11:35:52 INFO brokerOutApi_thread_1 - register broker to name server localhost:9876 OK
2018-09-26 11:35:52 INFO main - Start transaction service!
2018-09-26 11:35:52 INFO main - The broker[iZbp1a727tp99dumb5yskuZ, 172.16.61.95:10911] boot success. serializeType=JSON and name server is localhost:9876
2018-09-26 11:36:01 INFO BrokerControllerScheduledThread1 - dispatch behind commit log 0 bytes
2018-09-26 11:36:01 INFO BrokerControllerScheduledThread1 - Slave fall behind master: 0 bytes
2018-09-26 11:36:02 INFO brokerOutApi_thread_2 - register broker to name server localhost:9876 OK
5. 發(fā)送和接收消息
> 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...
6. 關(guān)閉服務(wù)器
> 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
參考:rocketmq官方文檔