RocketMQ安装部署教程详解RocketMQ 安装部署教程详解
Linux 环境
OS: Ubuntu 16.04 LTS x64
系统配置: 1C/2G/5M
RocketMQ: 4.5.2
JDK: 1.8.0_201
Maven: 3.6.1
Git
1. 安装 git
apt-get update
apt install -y git
2. 安装 jdk8u201
wget lzmx.oss-cn-shanghai-internal.aliyuncs/soft/
mkdir -p /opt/java && tar -zxvf -C /opt/java/
echo 'export JAVA_HOME=/opt/java/jdk1.8.0_201' >> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
java -version
3. 安装 maven3.6.1
wget mirror.bit.edu/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.zip
apt install unzip
unzip apache-maven-3.6.1-bin.zip -d /opt/java
echo 'export MAVEN_HOME=/opt/java/apache-maven-3.6.1' >> /etc/profile
echo 'export PATH=${MAVEN_HOME}/bin:${PATH}' >> /etc/profile
source /etc/profile
mvn -version
建议替换源为阿⾥源,替换好的配置⽂件如下
rm -rf /opt/java/apache-maven-3.6.1/l
wget -P /opt/java/apache-maven-3.6.1/conf lzmx.oss-cn-shanghai-internal.aliyuncs/l
没有的同学可以⼿动替换 l 中的 mirror 加快下载依赖的速度
<mirror>
<id>aliMaven</id>
<name>aliyun maven</name>
<url>maven.aliyun/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
4. 安装 tmux
安装 tmux 主要是为了终端复⽤,⽅便后续安装,不装也没关系
apt install -y tmux
5. 部署 RocketMQ
克隆远程仓库
git clone github/apache/rocketmq.git
编译RocketMQ
阿⾥云1C2G机器⼤概编译需要3-5分钟的样⼦,还是很快的。
cd rocketmq
mvn -Prelease-all -DskipTests clean install -U
将编译完的程序移出,例如移到 /root/rocketmq ⽬录下
cp distribution/target/rocketmq-4.5. /root
# 删除源码包
rm -rf rocketmq
# 解压打包好的⽂件
tar zxvf rocketmq-4.5.
mv rocketmq-4.5.2 rocketmq
cd rocketmq
环境变量设置
这⾥我临时放在 /root ⽬录下了,可以根据⾃⼰的需要替换这个位置
echo 'export ROCKETMQ_HOME=/root/rocketmq' >> /etc/profile
echo 'export PATH=$ROCKETMQ_HOME/bin:$PATH' >> /etc/profile
使环境变量⽣效
source /etc/profile
增加运⾏权限
进⼊ rocketmq ⽂件夹,增加运⾏权限
cd rocketmq/bin
chmod +x *maven下载教程
修改默认启动配置
修改默认配置。由于RocketMQ默认配置要求很⾼,开始启动前需要先修改这些参数。
否则的话,我们很有会遇到内存分配或者不够的问题(memory alloc failed)。
修改 bin/runserver.sh JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:PermSize=128m -XX:MaxPermSize=320m"
修改 bin/runbroker.sh JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
修改 bin/tools.sh JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:PermSize=128m -XX:MaxPermSize=128m"
运⾏ namesrv 节点
都修改完成了之后可以开始运⾏ namesrv 了,这⾥建议⽤ tmux 复⽤终端⽅便管理
sh mqnamesrv
注:后台启动⽅式
1. nohup sh bin/mqnamesrv &
出现The Name Server boot success. serializeType=JSON表⽰ namesrv 启动成功
运⾏ broker 节点
接下来启动 broker 节点,单机跑的话可能会产⽣如下报错
[main] ERROR RocketmqCommon - Failed to obtain the host name
java.UnknownHostException: iZowsledoqslnrZ: iZowsledoqslnrZ: Name or service not known
at LocalHost(InetAddress.java:1506) ~[na:1.8.0_201]
at ketmqmon.BrokerConfig.localHostName(BrokerConfig.java:185) [rocketmq-common-4.5.2.jar:4.5.2]
at ketmqmon.BrokerConfig.<init>(BrokerConfig.java:38) [rocketmq-common-4.5.2.jar:4.5.2]
at ketmq.ateBrokerController(BrokerStartup.java:110) [rocketmq-broker-4.5.2.jar:4.5.2]
at ketmq.broker.BrokerStartup.main(BrokerStartup.java:58) [rocketmq-broker-4.5.2.jar:4.5.2]
Caused by: java.UnknownHostException: iZowsledoqslnrZ: Name or service not known
at java.Inet4AddressImpl.lookupAllHostAddr(Native Method) ~[na:1.8.0_201]
at java.InetAddress$2.lookupAllHostAddr(InetAddress.java:929) ~[na:1.8.0_201]
at AddressesFromNameService(InetAddress.java:1324) ~[na:1.8.0_201]
at LocalHost(InetAddress.java:1501) ~[na:1.8.0_201]
... 4 common frames omitted
The broker[DEFAULT_BROKER, 172.17.10.236:10911] boot success. serializeType=JSON and name server is localhost:9876
根据报错 Name or service not known 可知,这是由于启动的时候不到⾃⼰的主机名对应的ip地址⽽造成的,只需要让在 /etc/hosts 中添加127.0.0.1 iZowsledoqslnrZ,注意是主机名
echo '127.0.0.1 iZowsledoqslnrZ' >> /etc/hosts
重新启动 broker 节点。
sh mqbroker -n localhost:9876 autoCreateTopicEnable=true
后台启动⽅式:nohup bash bin/mqbroker -n 192.168.158.147:9876 &
启动成功出现如下提⽰The broker[localhost, 172.17.10.236:10911] boot success. serializeType=JSON
测试环境
跑⼀个测试看看,⽣产者/消费者测试
sh bin/tools.sh ample.quickstart.Producer
sh bin/tools.sh ample.quickstart.Consumer
关闭所有服务器
sh bin/mqshutdown broker
sh bin/mqshutdown namesrv
安装管理⾯板
git clone github/apache/rocketmq-externals.git
cd rocketmq-externals/rocketmq-console
mvn clean package -st.skip=true
cd target
cp rocketmq-console-ng-1.0.1.jar ~/rocketmq-console.jar
cd ~
java -jar rocketmq-console.jar --server.port=8080 --fig.namesrvAddr=localhost:9876
常见错误
1. 启动Name Server的时候报:Please set the ROCKETMQ_HOME variable in your environment!配置⼀下ROCKETMQ_HOME的环境变量。
2. 启动Broker的时候报不到主类JDK,修改d第40⾏set "JAVA_OPT=%JAVA_OPT% -cp "%CLASSPATH%""原来
的%CLASSPATH%少了双引号。
3. 启动Producer报错ption.RemotingConnectException: connect to <172.17.0.1:10909> failed多种原因:
检查IP地址,经检查对应服务器安装有其他⽹桥,将其卸载即可
在Producer中将VIP通道关闭:producer.setVipChannelEnabled(false);
1. 启动Producer报错ption.MQClientException: No route info of this topic, TopicTest2
Broker没有正确连接到Name Server 或
Producer没有正确连接到Name Server 或
Broker禁⽌⾃动创建Topic,且⽤户没有通过⼿⼯⽅式创建Topic 默认配置启动broker时autoCreateTopicEnable=true已设置,所以检查连接即可。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。