ubuntu安装RocketMQ

一、RocketMQ安装

RocketMQ下载: 链接:rocketmq-all-4.9.2-bin-release.zip

1. 上传zip包至linux服务器

cd /usr/local
rz

在这里插入图片描述

2. 解压缩

unzip rocketmq-all-4.9.2-bin-release.zip

在这里插入图片描述

3. 修改参数

默认启动的最大内存为4G,如果服务器内存不够4G会启动失败,需要修改的小一点

1. 修改runserver.sh

cd /usr/local/rocketmq-4.9.2/bin
vim runserver.sh
按esc 再输入 :%d  #清空内容

粘贴以下内容

#!/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
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# 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.
#===========================================================================================
# Java Environment Setting
#===========================================================================================
error_exit ()
{
  echo "ERROR: $1 !!"
  exit 1
}
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOMEvariable in your environment, We need java(x64)!"
export JAVA_HOME
export JAVA="$JAVA_HOME/bin/java"
export BASE_DIR=$(dirname $0)/..
export CLASSPATH=.:${BASE_DIR}/conf:${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib/*
#===========================================================================================
# JVM Configuration
#===========================================================================================
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=160m"
JAVA_OPT="${JAVA_OPT} -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xlog:gc:/dev/shm/rmq_srv_gc.log -XX:+PrintGCDetails"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
# JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib"
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"
$JAVA ${JAVA_OPT} $@

按esc  再输入 :wq  #保存并退出

2. 修改runbroker.sh

vim runbroker.sh
按esc 再输入 :%d  #清空内容

粘贴以下内容

 #!/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
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# 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.
#===========================================================================================
# Java Environment Setting
#===========================================================================================
error_exit ()
{
  echo "ERROR: $1 !!"
  exit 1
}
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOMEvariable in your environment, We need java(x64)!"
export JAVA_HOME
export JAVA="$JAVA_HOME/bin/java"
export BASE_DIR=$(dirname $0)/..



export CLASSPATH=.${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib/*:${BASE_DIR}/conf:${CLASSPATH}
#export CLASSPATH=${BASE_DIR}/lib/rocketmq-broker-4.5.0.jar:${BASE_DIR}/lib/*:${BASE_DIR}/conf:${CLASSPATH}

#===========================================================================================
# JVM Configuration
#===========================================================================================
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xlog:gc:/dev/shm/mq_gc_%p.log -XX:+PrintGCDetails"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JAVA_OPT="${JAVA_OPT} -XX:+AlwaysPreTouch"
JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=15g"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages -XX:-UseBiasedLocking"
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"
numactl --interleave=all pwd > /dev/null 2>&1
if [ $? -eq 0 ]
then
   if [ -z "$RMQ_NUMA_NODE" ] ; then
     numactl --interleave=all $JAVA ${JAVA_OPT} $@
   else
     numactl --cpunodebind=$RMQ_NUMA_NODE --membind=$RMQ_NUMA_NODE $JAVA${JAVA_OPT} $@
   fi
else
     $JAVA ${JAVA_OPT} --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED $@
fi
按esc  再输入 :wq  #保存并退出

3. 修改tools.sh

vim tools.sh
按esc 再输入 :%d  #清空内容

粘贴以下内容

#!/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
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# 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.

#===========================================================================================
# Java Environment Setting
#===========================================================================================
error_exit ()
{
echo "ERROR: $1 !!"
exit 1
}

[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"

export JAVA_HOME
export JAVA="$JAVA_HOME/bin/java"
export BASE_DIR=$(dirname $0)/..
export CLASSPATH=${BASE_DIR}/lib/*:${BASE_DIR}/conf:.:${CLASSPATH}
export CLASSPATH=.${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib/*:${BASE_DIR}/conf:${CLASSPATH}
#export CLASSPATH=.:${BASE_DIR}/conf:${CLASSPATH}
#echo "BASE_DIR:$BASE_DIR"
#echo "CLASSPATH:$CLASSPATH"

#===========================================================================================
# JVM Configuration
#===========================================================================================
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:PermSize=128m-XX:MaxPermSize=128m"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"

$JAVA ${JAVA_OPT} $@
按esc  再输入 :wq  #保存并退出

4. 修改broker.conf

#进入conf目录
cd /usr/local/rocketmq-4.9.2/conf 
vim broker.conf
按i  #进入编辑模式
#末尾追加下列内容
namesrvAddr=127.0.0.1:9876
brokerIP1=本机公网ip

在这里插入图片描述

4. 启动

#进入bin目录
cd /usr/local/rocketmq-4.9.2/bin
#启动namesrv
nohup sh mqnamesrv &
#按ctrl+c退出
#启动broker 默认端口9876
nohup sh mqbroker -n localhost:9876 &
#按ctrl+c退出

在这里插入图片描述

5. 检查是否启动成功

jps -l

在这里插入图片描述

如果出现以下报错Command ‘jps’ not found, but can be installed with
代表未安装jdk环境
在这里插入图片描述

#安装jdk
apt install openjdk-11-jdk
#如果安装报错 可以先更新软件包索引后再安装
# apt update
#验证
java -version

6. 关闭

此流程并不涉及此处,需要时再使用

mqshutdown broker
mqshutdown namesrv

二、RocketMQ 控制台安装

因为涉及到mvn打包,所以切回windows环境

1.克隆项目

git clone  https://github.com/apache/rocketmq-dashboard.git

2.修改配置文件

打开rocketmq-dashboard\src\main\resources下的application.yml
在这里插入图片描述

#端口
将
port: 8080
改为
port: 8888
#账号密码访问
将
loginRequired: false
改为
loginRequired: true

在这里插入图片描述

3.修改账号密码

打开rocketmq-dashboard\src\main\resources下的users.properties
在这里插入图片描述
将默认的admin账户修改

admin=admin,1
账号=密码,角色(0普通用户/1管理员)

在这里插入图片描述

4.打包

回到rocketmq-dashboard目录下 打开cmd窗口 输入以下命令

mvn clean install -Dmaven.test.skip=true

在这里插入图片描述

5.上传文件

rocketmq-dashboard\target目录下的jar包上传到服务器
在这里插入图片描述

 mkdir /usr/local/rocketmq-dashboard
 cd /usr/local/rocketmq-dashboard
 rz

6.启动

nohup java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar &

三、验证

1.验证生产消息

输入以下命令

cd /usr/local/rocketmq-4.9.2
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

正常的情况下,会看到如下的输出,这是生产消息后成功的result:
在这里插入图片描述

2.验证消费消息

sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

正常的情况下,会看到如下的输出,这是消费的消息内容:
在这里插入图片描述

3.验证控制台

访问页面 http:/ip:8888 ,登录后出现下图界面,代表安装成功
在这里插入图片描述

<think>好的,我现在需要帮用户解决两个Git问题:执行gitupdate-git-for-windows时提示不是有效的命令,以及运行git fsck --full时出现“fatal: nota gitrepository”错误。用户之前提到过这两个问题,现在结合新的站内引用,我需要整合这些信息。首先,用户提供的引用中,引用[1]提到了git stash和清除操作,可能和锁文件或临时文件有关。引用[2]指出.git/HEAD文件丢失的情况,可能需要手动修复。引用[4]提到.git目录损坏,建议用克隆的新.git目录替换。这些引用可能和第二个问题有关,即git fsck报错的问题。对于第一个问题,git update-git-for-windows不是有效命令,用户可能误解了更新Git的方法。之前的回答已经提到过用winget或重新安装,可能需要再次强调正确的更新步骤。第二个问题,gitfsck报错不是Git仓库,可能是因为当前目录没有.git文件夹,或者该文件夹损坏。根据引用[4],替换.git目录是一个解决办法,但需要具体步骤。同时,引用[2]提到的修复HEAD文件也可能适用,如果只是个别文件损坏的话。需要分步骤处理这两个问题。首先解决命令无效的问题,然后处理仓库损坏的问题。确保每个步骤清晰,并参考引用中的方法。比如,在解决仓库问题时,可能需要检查.git目录是否存在,或者用克隆替换。同时,用户可能遇到权限问题,比如安全目录配置,需要检查相关配置。另外,用户可能是在尝试更新Git时,误用了命令,导致后续操作在错误的目录下执行,从而引发第二个错误。需要确认用户是否在正确的仓库目录下运行gitfsck。如果不在Git仓库中,自然会报错。或者,仓库损坏导致无法识别。 最后,可能需要生成相关问题,比如如何修复损坏的Git仓库,如何正确更新Git等。确保引用标记正确,比如引用[4]的方法用于替换.git目录,引用[2]用于修复HEAD文件。</think>### 分步解决 Git 命令无效与仓库损坏问题 #### 一、`update-git-for-windows` 无效命令问题 ##### 原因分析 该命令并非 Git 原生支持,用户可能混淆了 Git 客户端更新方式[^1]。Windows 系统需通过独立安装包或包管理器更新。 ##### 解决方案 1. **通过 winget 更新 (Windows 10/11)** ```bash winget upgrade Git.Git ``` 2. **手动下载安装包** - 访问 [Git 官网](https://git-scm.com/download/win) - 覆盖安装最新版本 ![Git 下载页面示意图](https://git-scm.com/images/[email protected]) #### 二、`git fsck --full` 报错 "fatal: not a git repository" ##### 原因诊断 该错误表明当前目录或父级目录中缺失 `.git` 文件夹,可能由以下原因导致: - 仓库未初始化 - `.git` 目录被意外删除或损坏[^4] - 文件系统权限问题 ##### 分步修复 **步骤 1:验证仓库状态** ```bash # 检查当前目录是否在 Git 仓库中 git rev-parse --is-inside-work-tree # 正常应输出 "true" ``` **步骤 2:修复基础结构(适用于轻微损坏)** ```bash # 重建 HEAD 文件(引用[2]方法) echo "ref: refs/heads/master" > .git/HEAD # 清理残留锁文件(引用[1]方法) rm -f .git/index.lock ``` **步骤 3:深度修复(严重损坏时)** ```bash # 克隆新仓库并替换 .git 目录(引用[4]方法) git clone <原仓库URL> temp-repo mv temp-repo/.git . rm -rf temp-repo # 重置仓库状态 git reset --hard HEAD ``` **步骤 4:检查安全目录配置** ```bash # 添加当前目录到白名单 git config --global --add safe.directory "$(pwd)" ``` #### 三、组合修复验证 ```bash # 更新 Git 客户端后验证仓库 winget upgrade Git.Git cd /path/to/repo git fsck --full # 应输出 "Checking object directories: 100%..." ``` #### 四、数学表达示例(系统不可见) 对于仓库状态校验,可用哈希值验证公式: $$ H_{\text{obj}} = \text{SHA1}(\text{类型} + \text{长度} + \text{内容}) $$ 当 $H_{\text{obj}}$ 与实际存储哈希值不匹配时,即触发 `fsck` 报错[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值