在linux上部署rocketMQ

环境

阿里云:centos7服务器

1. 下载源码

wget htt://mirrors.hust.edu.cn/apache/rocketmq/4.3.0/rocketmq-all-4.3.0-source-release.zip

2. 构建

  > 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. 启动名称服务器

  > nohup sh bin/mqnamesrv &
  > tail -f ~/logs/rocketmqlogs/namesrv.log
  The Name Server boot success...

如果在启动服务器的时候报:
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006c0000000, 2147483648, 0) failed; error='Cannot allocate memory' (errno=12)
那么需要调整rocketMQ的内存

> vim bin/runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx256m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=320m"

-Xms 的值一定要比 -Xmx  要小不让,也会报错:如下
Initial heap size set to a larger value than the maximum heap size

设置好后启动,
# 启动日志
 ⚡ ⚙ 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. 启动broker

 # autoCreateTopicEnable=true 参数可以在启动Broker时指定自动创建Topic:
 > nohup sh bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true &
 > tail -f ~/logs/rocketmqlogs/broker.log 
 The broker[%s, ip:port] boot success...

如果在启动服务器的时候报:
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)
那么需要调整broker的内存

> vim bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
设置好后启动,
# 启动日志
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. 发送和接收消息

 > 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. 关闭服务器

> 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官方文档

你可能感兴趣的:(在linux上部署rocketMQ)