参考文档:
http://rocketmq.apache.org/docs/quick-start/
https://www.jianshu.com/p/824066d70da8
http://blog.51cto.com/yushiwh/2118625
https://www.cnblogs.com/quchunhui/p/7284752.html
nameserver默认使用9876端口,broker默认端口10911,vip通道端口号为10909,同时该broker会使用10910[mqadmin连接使用],10912端口[slave连接使用],在阿里云部署时需要开放这几个端口。
一、下载安装包
源码安装:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip
二、安装
RocketMq需要安装jdk1.8。源码安装的话还需要maven和git,参考官方文档安装即可。
Binary安装直接下载安装包到/opt目录下,unzip命令解压 unzip rocketmq-all-4.2.0-bin-release.zip -d rocketmq-all-4.2.0
三、启动
解压之后cd到bin目录下,首先根据服务器配置来修改 runserver.sh 和 runbroker.sh 两个文件的jvm配置。
cd到rocketmq安装目录,创建logs文件夹,
启动namesrv
nohup sh bin/mqnamesrv > /opt/rocketmq-all-4.2.0/logs/mqnamesrv.log 2>&1 &
tailf /logs/mqnamesrv.log,出现 The Name Server boot success. serializeType=JSON表示启动namesrv成功
启动broker
nohup sh bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true >/opt/rocketmq-all-4.2.0/logs/broker.log 2>&1 &
(autoCreateTopicEnable=true 表示自动创建topic)
tailf /logs/broker.log
执行jps
namesrv和broker启动成功!
关闭服务器:
sh bin/mqshutdown broker //停止 broker
sh bin/mqshutdown namesrv //停止 nameserver
四、测试
发送消息:
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
接收消息:
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
五、添加开机自启动
切换到rocketMq的bin目录下,
1、拷贝play.sh到Start.sh,并修改Start.sh内容如下:
#!/bin/sh
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Name Server
#
#nohup sh mqnamesrv > ns.log 2>&1 &
nohup sh /opt/rocketmq
-all
-4.2.0/bin/mqnamesrv >/opt/rocketmq
-all
-4.2.0/logs/mqnamesrv.log 2>&1 &
#
# Service Addr
#
ADDR=`hostname
-i
`:9876
#
# Broker
#
#nohup sh mqbroker -n ${ADDR} > bk.log 2>&1 &
nohup sh /opt/rocketmq
-all
-4.2.0/bin/mqbroker
-n
localhost:9876 autoCreateTopicEnable=true >/opt/rocketmq
-all
-4.2.0/logs/broker.log 2>&1 &
#sh broker.sh
echo
"Start Name Server and Broker Successfully, ${ADDR}"
|
2.修改rc.local文件,vim /etc/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
source /etc/profile
su
-c
'cd && /opt/rocketmq-all-4.2.0/bin/Start.sh'
|
3.查看Start.sh 和rc.local的权限,看是否可执行,如果不是的话添加可执行权限
chomd +x /opt/rocketmq-all-4.2.0/bin/Start.sh
4.重启服务器,使用jps查看是否已经启动,如果没有检查下脚本是否正确