安装环境

在进行安装之前,您需要预先安装以下软件:

  1. 建议使用64位Linux/Unix/Mac操作系统;
  2. 64位JDK 1.8+;
  3. Maven 3.2.x(点击查看安装教程);
  4. 4G以上的可用磁盘

下载和构建

  1. 点击此处下载4.4.0版本压缩包
  2. 上传压缩包到服务器指定位置,以/www/wwwroot为例
  3. 执行以下命令以解压压缩包并进行构建
    > cd /www/wwwroot
    > unzip rocketmq-all-4.4.0-source-release.zip
    > cd rocketmq-all-4.4.0/
    
    //这一步会比较慢,泡杯茶静候片刻
    > mvn -Prelease-all -DskipTests clean install -U
    > cd distribution/target/apache-rocketmq

修改默认配置

  1. RocketMQ默认分配的内存比较大,如果可用资源有限的话,需要先修改JVM的参数配置
  2. 进入bin目录,编辑runserver.sh,将JAVA_OPT修改为JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m",我这边修改的是256MB,如果是生产环境的话,建议还是在4G左右,保证稳定使用
  3. 编辑runbroker.sh,修改JAVA_OPTJAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m"

启动 Name Server

> nohup sh bin/mqnamesrv &

//执行 jps 查看进程,显示当前所有java进程pid
> jps
23126 Jps
23004 NamesrvStartup
14716 -- process information unavailable

//查看日志确保服务已正常启动
> tail -f ~/logs/rocketmqlogs/namesrv.log
2019-11-27 09:41:45 INFO main - tls.client.keyPath = null
2019-11-27 09:41:45 INFO main - tls.client.keyPassword = null
2019-11-27 09:41:45 INFO main - tls.client.certPath = null
2019-11-27 09:41:45 INFO main - tls.client.authServer = false
2019-11-27 09:41:45 INFO main - tls.client.trustCertPath = null
2019-11-27 09:41:45 INFO main - Using OpenSSL provider
2019-11-27 09:41:45 INFO main - SSLContext created for server
2019-11-27 09:41:45 INFO NettyEventExecutor - NettyEventExecutor service started
2019-11-27 09:41:45 INFO main - The Name Server boot success. serializeType=JSON
2019-11-27 09:41:45 INFO FileWatchService - FileWatchService service started

启动 Broker

> nohup sh bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true &

// jps查看Java进程
> jps
27576 BrokerStartup
23004 NamesrvStartup
27740 Jps
14716 -- process information unavailable

// 查看日志确保服务已正常启动
>  tail -f ~/logs/rocketmqlogs/broker.log
2019-11-27 10:25:05 INFO PullRequestHoldService - PullRequestHoldService service started
2019-11-27 10:25:05 INFO brokerOutApi_thread_1 - register broker to name server localhost:9876 OK
2019-11-27 10:25:05 INFO main - Start transaction service!
2019-11-27 10:25:05 INFO main - The broker[localhost.localdomain, 192.168.0.101:10911] boot success. serializeType=JSON and name server is localhost:9876

其中Name Server和Broker的日志文件存放在/root/logs/rocketmqlogs/目录中

设置环境变量

在发送/接收消息之前,我们需要告诉客户端名称服务器的位置。RocketMQ提供了多种方法来实现这一目标。为简单起见,我们使用环境变量NAMESRV_ADDR

> 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...

停止服务

> 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

安装可视化管理页面

  1. 点击此处前往github下载RocketMQ拓展程序,其中rocketmq-console为可视化管理页面程序
  2. 修改application.propertiesrocketmq.config.namesrvAddr服务器IP:9876
  3. 使用mvn构建或使用IDE打开项目
  4. 运行程序
  5. 浏览器打开http://localhost:8080就可以看到ActiveMQ的管理页面
    image.png