RocketMq安装踩坑日记
服务器上安装rocketmq真的踩了不少了坑,后来经过几次不同方式的重装才搞定了!
下面来解说下安装的过程,希望各位经过的伙伴如果遇到这些坑能够快速解决!
安装所需环境如下:
jdk,maven(需要maven来编译rocketmq成二进制文件)
1.安装jdk
jdk这里就不说安装步骤了,网上大把。
查看jdk是否安装成功
java -version
2.安装maven
下载
wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
解压
tar -zxvf 包名
配置环境变量
# vi /etc/profile
export MAVEN_HOME=mamven的安装位置(包括包名)
export PATH=$MAVEN_HOME/bin:$PATH
修改配置记得刷新配置
# source /etc/profile
安装rocketmq
下载
wget https://github.com/apache/rocketmq/archive/rocketmq-all-4.2.0.tar.gz
解压
tar -zxvf 包名
进到rocketmq目录使用maven下载依赖
mvn -Prelease-all -DskipTests clean install -U
编译完后可以看到多了distribution文件
编译后的路径:rocketmq-rocketmq-all-4.2.0/distribution/target/apache-rocketmq/bin
配置rocketmq的环境变量
export rocketmq=/usr/software/rocketmq/rocketmq-all-4.7.1-source-release/distribution/target/apache-rocketmq
export PATH=$PATH:$rocketmq/bin
配置完记得刷新配置:source /etc/profile
接下来就可以启动mq了。
启动name server(namesrv)
可以以日志的形式启动
进入到rocket的bin目录下执行
nohup sh mqnamesrv >/usr/mq/logs/rocketmqlogs/mqnamesrv.log 2>&1 &
普通启动:# nohup sh mqnamesrv &
进入bin目录,查看是否启动成功: # ./mqnamesrv
启动代理(broker)
普通启动:# nohup sh mqbroker -n localhost:9876 &
进入bin目录,查看是否启动成功
./mqbroker -p 47.115.149.74:9876
指定日志启动(启动前记得创建好日志文件,mkdir 文件名;) nohup sh mqbroker -n 外网的ip地址:9876 >/usr/mq/logs/rocketmqlogs/broker.log 2>&1 & 启动配上主题 nohup sh mqbroker -n 外网的ip地址:9876 autoCreateTopicEnable=true >/usr/mq/logs/rocketmqlogs/broker.log 2>&1 &
#重点:mrbroker 启动时通过 -c 加载配置文件
#注意: 指定配置启动(避免添加不了主题) nohup sh mqbroker -n 外网的ip地址:9876 -c /usr/mq/rocketmq/rocketmq-rocketmq-all-4.2.0/distribution/target/apache-rocketmq/conf/broker.conf &
为了避免启动后使用mq的控制台添加不了主题,命令后面加上 autoCreateTopicEnable=true
启动broker很容易出错,大家伙要小心为妙,我就是以配置文件的形式来启动broker的(服务器装法)。
如果你在服务器上部署了rocketmq之后,用本地的rocket-externals(可视图化工具,控制台)去连接,然后报如下错误
修改服务器中broker的配置,添加服务器IP(公网)即可。
进入到conf目录下修改broker.conf配置文件
# vi broker.conf
在配置的最后一行加上:brokerIP1=xx.xx.xx.xx #你的公网IP
改完后记得从启动服务和代理(broker记得以加载broker.conf配置文件的方式启动)
# nohup sh mqbroker -n 外网的ip地址:9876 -c /usr/mq/rocketmq/rocketmq-rocketmq-all-4.2.0/distribution/target/apache-rocketmq/conf/broker.conf &
nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。
关闭服务
# sh mqshutdown broker
# sh mqshutdown namesrv
杀进程:#kill +进程id
查看进程# ps -aux|grep rocketmq
4.rocketmq可视图化控制台
源码下载地址: https://github.com/apache/rocketmq-externals/tree/master/
进入到application.properties配置文件指定 mq 的IP地址(如果mq部署在服务器上,记得用服务器的ip地址)
rocketmq.config.namesrvAddr=127.0.0.1:9876
找到rocketmq-console项目,进入打包
打包
# mvn clean package -Dmaven.test.skip=true
运行
# java -jar jar名
访问mq控制台
http://localhost:端口
还有的就是如果你是在服务器上装的mq记得在本服务器上配上安全组
阿里云服务器并进入控制台(云服务器ECS)-->实例-->实例列表找到【更多】-->【网络和安全组】--》【安全组配置】-->配置规则