当前位置:   article > 正文

Linux环境下配置安装RocketMQ_linux安装rocketmq

linux安装rocketmq

1.下载

官网下载:下载链接
根据需要下载自己需要的版本、本文使用下载的是:4.7.0版本
在这里插入图片描述
在这里插入图片描述

2.安装

创建目录,使用ftp工具上传下载的包到上面创建的目录下。

cd /usr/local
mkdir rocketmq-all-4.7.0
  • 1
  • 2

注意:rocketmq 需要 Linux 上安装JDK,版本 1.8 以上,如果你 Linux 上已经配置了 Java 环境可跳过,未安装请自行安装。
在这里插入图片描述
上传之后进行解压:

unzip rocketmq-all-4.7.0-bin-release.zip
  • 1

在这里插入图片描述

解压后目录结构
benchmark:这里面就是一些可以直接运行,进行测试的 sh 文件
bean:该目录是比较常用的,里面是一些可执行文件
conf:这里面就是一些配置文件
lib:就是 mq 所依赖的第三方 jar 包

3.启动

3.1 启动:NameServer

进入 bin 目录 cd bin/

  nohup ./mqnamesrv & 
  或者
  nohup sh bin/mqnamesrv &
  • 1
  • 2
  • 3

查看日志

tail -f ~/logs/rocketmqlogs/namesrv.log
  • 1

#出现下面信息成功

  The Name Server boot success...
  • 1

在这里插入图片描述

3.2 启动:Broker

在启动之前先修改两个配置

cd bin

vim runserver.sh
  • 1
  • 2
  • 3

mq 默认需要的内存是比较大的,根据自己 Linux 的内存大小去设置,我这里就改成 256 256 128 了

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
  • 1

在这里插入图片描述

cd bin

vim runserver.sh
  • 1
  • 2
  • 3

调整小点

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
  • 1

在这里插入图片描述
注意:这里很坑爹
安装rocketMQ的server后,启动一切正常,但是使用客户端连接时报错、很纳闷这个172.17.42.1是从哪里来的。

Caused by: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to <172.17.42.1:10911> failed
  • 1

检查服务器上,这个ip是docker0的虚拟网卡的网关,但是启动rocketMQ时并没有设置这个ip,检查broker.conf和其他配置文件没有发现可以配置ip地址的地方,官方文档里也没有说明。重新编译并没有解决问题,于是把docker网卡停掉,连接还是报同样的错。

因为broker部署在虚拟机,并且虚拟双网卡,client无法正常连接服务端(不是部署到虚拟机的可能不会遇到这个问题、等遇到这个问题在解决)

解决办法:修改broker.conf配置文件添加IP、在conf文件中加入两行(建议直接复制,然后再修改为自己的IP),一定是大写IP!!!!!
在这里插入图片描述
在这里插入图片描述

namesrvAddr = 127.0.0.1:9876
brokerIP1 = 192.168.232.143
  • 1
  • 2

启动Broker

nohup ./mqbroker -n localhost:9876 ../conf/broker.conf &
  • 1

查看日志

tail -f ~/logs/rocketmqlogs/broker.log
  • 1

看到下面信息代表成功

  The broker[%s, 172.30.30.233:10911] boot success...
  • 1

注意:不要把打印日志的这个窗口关闭、窗口关闭进程结束了

4.测试

新开开了两个窗口,都在 mq 的 bin 目录下,一个用于发送消息,一个用于接收消息。

前面开的窗口不要关闭、不要关闭。
在这里插入图片描述
发送消息:

# 声明一个 namesrv 的地址
export NAMESRV_ADDR=localhost:9876
# 发送消息
./tools.sh org.apache.rocketmq.example.quickstart.Producer
  • 1
  • 2
  • 3
  • 4
# 出现下面信息成功发送
  SendResult [sendStatus=SEND_OK, msgId= ...
  • 1
  • 2

接收消息:

# 声明一个 namesrv 的地址
export NAMESRV_ADDR=localhost:9876
# 发送消息
./tools.sh org.apache.rocketmq.example.quickstart.Consumer
  • 1
  • 2
  • 3
  • 4
# 出现下面信息成功消费
 ConsumeMessageThread_%d Receive New Messages: [MessageExt...
  • 1
  • 2

5.安装控制台

下载源码:链接
在这里插入图片描述
在这里插入图片描述
修改配置信息:进入到解压的文件夹下修改 application.yml 文件,根据情况修改,注意端口冲突问题。
在这里插入图片描述
在这里插入图片描述
编译源代码、输入cmd进入到目录下(maven已经按照配置完成)
在这里插入图片描述
在这里插入图片描述

mvn clean package -Dmaven.test.skip=true
  • 1

打包成功之后会生成target目录
在这里插入图片描述
在这里插入图片描述

如果打包中报错:

[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.11.3:install-node-and-yarn (install node and yarn) on project rocketmq-dashboard: Could not download Yarn: Could not download https://github.com/yarnpkg/yarn/releases/download/v1.22.10/yarn-v1.22.10.tar.gz: Connect to github.com:443 [github.com/20.205.243.166] failed: Connection timed out: connect -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

访问
https://github.com/yarnpkg/yarn/releases/download/v1.22.10/yarn-v1.22.10.tar.gz
手动下载、下载完成后找到maven配置的仓库地址下面的\com\github\eirslett\yarn\1.22.10、手动放进去。如果目录不存在手动创建。

cd  /usr/local/rocketmq-all-4.7.0

#创建目录存放编译好的控制台jar包
mkdir  rocketmq-console
  • 1
  • 2
  • 3
  • 4

使用ftp工具上传编译后的jar包到创建的目录下:
在这里插入图片描述

cd /usr/local/rocketmq-all-4.7.0/rocketmq-console

#启动jar包
java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar
  • 1
  • 2
  • 3
  • 4

浏览器访问:注意打包编译源码之前配置文件自己修改的是什么这里端口就是什么。
这里没有设置账号密码、可以直接访问。
在这里插入图片描述

5.控制台开启密码登录功能

修改下载的源码的配置文件
在这里插入图片描述
打开密码配置文件
在这里插入图片描述
默认users.properties配置如下,需要修改用户名和密码

# Define Admin
admin=admin,1
 
# Define Users
user1=user1
user2=user2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

配置用户名和密码

# Define Admin
admin=新密码,1
 
# Define Users
用户名=新密码
  • 1
  • 2
  • 3
  • 4
  • 5

修改配置之后、需要重新编译打包、在上传到服务器对应目录下。
在这里插入图片描述
在这里插入图片描述
账号admin密码123456

6.启停脚本

启动脚本:NameServer、Broker、console全部启动
vim startMq.sh

#!/bin/bash

rocketmq_path="/usr/local/rocketmq-all-4.7.0/rocketmq-all-4.7.0-bin-release"
dashboard_path="/usr/local/rocketmq-all-4.7.0/rocketmq-console/rocketmq-dashboard-1.0.1-SNAPSHOT.jar"

function log_info() {
  echo "$(date '+%Y-%m-%d %H:%M:%S') [INFO] $@"
}

function log_error() {
  echo "$(date '+%Y-%m-%d %H:%M:%S') [ERROR] $@" >&2
}

# 启动 mqnamesrv
nohup sh "$rocketmq_path/bin/mqnamesrv" > /dev/null 2>&1 &
log_info "Starting mqnamesrv..."

# 等待 mqnamesrv 启动完成
sleep 5

# 检查 mqnamesrv 是否成功启动
if ! pgrep -f "$rocketmq_path/bin/mqnamesrv" >/dev/null; then
  log_error "Failed to start mqnamesrv."
  exit 1
fi

log_info "mqnamesrv started successfully."

# 启动 mqbroker
nohup sh "$rocketmq_path/bin/mqbroker" -n localhost:9876  -c "$rocketmq_path/conf/broker.conf" > /dev/null 2>&1 &

log_info "Starting mqbroker..."

# 等待 mqbroker 启动完成
sleep 5

# 检查 mqbroker 是否成功启动
if ! pgrep -f "$rocketmq_path/bin/mqbroker" >/dev/null; then
  log_error "Failed to start mqbroker."
  exit 1
fi

log_info "mqbroker started successfully."

# 启动 RocketMQ Dashboard
nohup java -jar "$dashboard_path" > /dev/null 2>&1 &
log_info "mqconsole started successfully..."


# 如果需要,在此处添加其他逻辑和命令

exit 0

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

停止脚本:NameServer、Broker、console全部停止
vim stopMq.sh

#!/bin/bash
sh /usr/local/rocketmq-all-4.7.0/rocketmq-all-4.7.0-bin-release/bin/mqshutdown broker
sh /usr/local/rocketmq-all-4.7.0/rocketmq-all-4.7.0-bin-release/bin/mqshutdown namesrv

# 指定进程名称
process_name="java -jar /usr/local/rocketmq-all-4.7.0/rocketmq-console/rocketmq-dashboard-1.0.1-SNAPSHOT.jar"

# 查询进程是否存在
pid=$(pgrep -f "$process_name")
if [ -n "$pid" ]; then
  echo "Process is running with PID: $pid"
  echo "Attempting to stop the process..."
  # 关闭进程
  kill "$pid"
  sleep 5 # 等待一段时间以确保进程已经停止
  # 再次查询进程是否存在
  pid=$(pgrep -f "$process_name")
  if [ -n "$pid" ]; then
    echo "Failed to stop the process."
  else
    echo "Process stopped successfully."
  fi
else
  echo "No console running."
fi

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/877392
推荐阅读
相关标签
  

闽ICP备14008679号