1、为了安全起见,最好为 RocketMQ 创建一个专用用户和组。可以使用以下命令: [root@localhost /]# sudo groupadd rocketmq [root@localhost /]# sudo useradd -r -g rocketmq -s /bin/false rocketmq 2、把文件改个目录 准备:复制目录要不目录太长了。 -r递归复制,-a 保留权限 [root@localhost local]# cp -r -a /usr/local/software/rocketmq-all-5.3.1-source-release/distribution/target/rocketmq-5.3.1/rocketmq-5.3.1 /usr/local/rocketmq-5.3.1 3、设置文件权限,即改变目录的所有者和权限 将 RocketMQ 的文件权限设置为新创建的用户和组: sudo chown -R rocketmq:rocketmq /usr/local/rocketmq-5.3.1 sudo chmod -R 755 /usr/local/rocketmq-5.3.1 4、nameserver的服务配置 vim /usr/lib/systemd/system/mqnamesrv.service [Unit] Description=RocketMQ 5.3.1 - nameserver After=network.target [Service] Type=forking User=rocketmq Environment="JAVA_HOME=/usr/local/software/jdk-21.0.5" Environment="PATH=$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" ExecStart=/usr/local/rocketmq-5.3.1/bin/mqnamesrv ExecStop=/usr/local/rocketmq-5.3.1/bin/mqshutdown namesrv Restart=always [Install] WantedBy=multi-user.target 下面的是给jdk创建软连接,创建过的可以不用创建了 ln -sf /usr/local/software/jdk-21.0.5 /usr/bin/java 5. 重新加载 systemd 重新加载 systemd 配置以使新服务生效: sudo systemctl daemon-reload 6. 启动 RocketMQ 服务 启动 Name Server 和 Broker 服务: sudo systemctl start mqnamesrv sudo systemctl start mqbroker 7. 设置开机自启 设置 RocketMQ Name Server 和 Broker 在系统启动时自启: sudo systemctl enable mqnamesrv sudo systemctl enable mqbroker 2 broker配置服务,/usr/local/software/myshell是mqbroker.sh脚本存放的位置。 vim /usr/lib/systemd/system/mqbroker.service [Unit] Description=RocketMQ 5.3.1 - Broker+Proxy After=network-online.target [Service] Environment=JAVA_HOME=/usr/local/software/jdk1.8.0_421 User=root Group=root Type=simple ExecStart=/usr/local/rocketmq-5.3.1/bin/mqbroker -c conf/broker.conf -n 192.168.150.50:9876 --enable-proxy ExecStop=/usr/local/rocketmq-5.3.1/bin/mqshutdown broker [Install] WantedBy=multi-user.target 6 开启自启和启动 echo $JAVA_HOME systemctl daemon-reload systemctl enable mqnamesrv.service systemctl start mqnamesrv.service systemctl status mqnamesrv.service journalctl -xe 查看具体的细节 journalctl -u mqnamesrv.service -b systemctl enable mqbroker.service systemctl start mqbroker.service 如果提示:ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! !! [root@localhost local]# java -version java version "1.8.0_421" Java(TM) SE Runtime Environment (build 1.8.0_421-b09) 7 如果启动失败看日志 查看系统日志: 使用 journalctl -xe 或 journalctl -u mqnamesrv.service 1. sudo chown -R rocketmq:rocketmq /opt/rocketmq sudo:以超级用户权限运行命令,确保有足够的权限进行更改。 chown:改变文件或目录的所有者。 -R:递归地应用此操作到所有子目录和文件。 rocketmq:rocketmq:将文件的所有者设置为用户 rocketmq,并将所属组设置为 rocketmq 组。 /opt/rocketmq:指定要更改权限的目录。 这个命令的作用是将 /opt/rocketmq 目录及其所有子文件和子目录的所有者和组更改为 rocketmq,确保该用户拥有对这些文件的完全访问权限。 2. sudo chmod -R 755 /opt/rocketmq chmod:改变文件或目录的权限。 -R:递归地应用此操作到所有子目录和文件。 755:这是一个权限设置,其中: 7:表示所有者(用户)具有读取、写入和执行权限(4+2+1)。 5:表示组用户具有读取和执行权限(4+1)。 5:表示其他用户也具有读取和执行权限(4+1)。 这个命令的作用是将 /opt/rocketmq 目录及其所有子文件和子目录的权限设置为 755,允许所有者可以读、写和执行,而组用户和其他用户只能读和执行。
RocketMQ 做成服务启动
于 2025-07-25 21:17:11 首次发布