模拟在服务器上运行RocketMQ,并且有控制台的能力。以后本地window可以边开发边连接虚拟机调试。记录下搭建过程方便以后重建。

注意的地方后文都会有对应的脚本
《Linux命令行与shell脚本编程大全》 提出:
/etc/profile/etc/profile 脚本,我们可以把自己的变量脚本放在 /etc/profile.d/xxx.sh (xxx自己命名)看了下内置的
/etc/profile脚本,其实就是遍历几个目录,这个脚本起了个路由的作用,profile.d下的所有脚本都会被加载
这里放一下我的环境变量
MAVEN_HOME=/usr/maven-3.8.7
export PATH=${MAVEN_HOME}/bin:$PATH
export JAVA_HOME=/usr/lib/jvm/java
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin
官网给的是源码,那就需要解压出来,用maven命令跑起来。
# 官方下载源码文件,解压到指定目录
unzip rocketmq-all-5.0.0-bin-release.zip -d /usr/# 修改下解压后的文件名
cd /usr/
mv rocketmq-all-5.0.0-bin-release rocketmq-5.0.0#rocketmq 源码使用maven编译打包成可以执行文件
cd distribution/target/rocketmq-5.0.0/rocketmq-5.0.0
mvn -Prelease-all -DskipTests clean install -U# 启动 mqnamesrv (rockrtmq的架构组成)
nohup sh /usr/rocketmq-5.0.0/distribution/target/rocketmq-5.0.0/rocketmq-5.0.0/bin/mqnamesrv &
# 看日志确认启动成功
tail -f ~/logs/rocketmqlogs/namesrv.log# 启动 mqbroker (rockrtmq的架构组成)
nohup sh /usr/rocketmq-5.0.0/distribution/target/rocketmq-5.0.0/rocketmq-5.0.0/bin/mqbroker -n localhost:9876 --enable-proxy &
# 看日志确认启动成功
tail -f ~/logs/rocketmqlogs/broker_default.log
# 确保unix 内核版本 > 3.10
uname -r
# docker 的卸载和安装
yum remove docker docker-common docker-selinux docker-engine
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
# 启动docker
systemctl start docker
systemctl enable docker
# 其他调试用的docker命令
docker ps
docker kill 容器id
docker ps -a
docker rm 容器id
# 关注ipv4地址,ens33不一定是一样的,指ifconfig 或者ip addr 能看到的对外端口
cat /etc/sysconfig/network-scripts/ifcfg-ens33
# 没有写死的ipv4地址,那就动态看
ifconfig -a# docker 拉取rocketmq-dashboard镜像
docker pull apacherocketmq/rocketmq-dashboard:lates# 启动镜像,注意启动参数绑定的host:port 是 mqbroker 上面注册的
docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.62.3:9876" -p 8080:8080 -t apacherocketmq/rocketmq-dashboard:latest
# 关闭虚拟机防火墙
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl status firewalld.service
systemctl disable firewalld.service# 同时关闭主机的内网防火墙 --window
http://192.168.62.3:8080/#/
sh /usr/rocketmq-5.0.0/distribution/target/rocketmq-5.0.0/rocketmq-5.0.0/bin/mqshutdown broker
sh /usr/rocketmq-5.0.0/distribution/target/rocketmq-5.0.0/rocketmq-5.0.0/bin/mqshutdown namesrv
docker kill 容器id
docker rm 容器id
总体就是按部就班的复制、改命令行。对比rocketmq namesrv + broker 的安装运行,支持 docker 镜像运行还是很方便的。现在官方都默认读者有环境变量了,借VMware建立快照的能力,把环境保留下来,以后就不用那么麻烦了。