安装jdk
1. 官网下载需要的jdk版本
https://www.oracle.com/tw/java/technologies/downloads/#java21
下载linux的tar.gz包
2. 进入Ubuntu控制台
2.1 创建存放路径
选一个自己平时存放应用的路径,或者创建一个常用文件夹来上传刚才下载的压缩包,这里我选择 /usr/local/jdk
bash
# cd /usr/local/jdk
# 进行解压,解压到这个目录
root@instance-yo4hab98:/usr/local/jdk# sudo tar -zxvf openjdk-8u44-linux-x64.tar.gz -C /usr/local/jdk/
2.2 配置环境变量,编辑/etc/profile文件
bash
root@instance-yo4hab98:/usr/local/jdk# sudo nano /etc/profile
在最后面加上:
bash
export JAVA_HOME=/usr/local/jdk/java-se-8u44-ri
export PATH=$PATH:$JAVA_HOME/bin
然后 ctrl+o 保存;按住回车确认要保存的文件;再按 ctrl+x 退出
接下来使配置生效:
bash
source /etc/profile
bash
java -version
安装maven
https://maven.apache.org/download.cgi
下载对应版本的 apache-maven-xxxxx-bin.tar.gz
bash
root@instance-yo4hab98:~# cd /usr/local
root@instance-yo4hab98:/usr/local# mkdir maven
root@instance-yo4hab98:/usr/local# cd ./maven
root@instance-yo4hab98:/usr/local/maven# tar zxvf apache-maven-3.9.15-bin.tar.gz
# 创建仓库目录
root@instance-yo4hab98:/usr/local/maven# mkdir repository
配置maven环境变量
bash
root@instance-yo4hab98:/usr/local/maven# vi /etc/profile
在最后面追加:
bash
export MAVEN_HOME=/usr/local/maven/apache-maven-3.9.15
export PATH=$PATH:$MAVEN_HOME/bin
使配置生效
bash
root@instance-yo4hab98:/usr/local/maven# source /etc/profile
root@instance-yo4hab98:/usr/local/maven# mvn -v
Apache Maven 3.9.15 (98b2cdbfdb5f1ac8781f537ea9acccaed7922349)
Maven home: /usr/local/maven/apache-maven-3.9.15
Java version: 1.8.0_44, vendor: Oracle Corporation, runtime: /usr/local/jdk/java-se-8u44-ri/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-173-generic", arch: "amd64", family: "unix"
修改maven仓库配置
bash
root@instance-yo4hab98:/usr/local/maven# cd ./apache-maven-3.9.15/conf
root@instance-yo4hab98:/usr/local/maven/apache-maven-3.9.15/conf# vi settings.xml
bash
# 找到<localRepository>节点,添加本地仓库目录
<localRepository>/usr/local/maven/repository</localRepository>
# 找到<mirror>节点,替换镜像源
<mirror>
<id>alimaven</id>
<mirrorOf>*</mirrorOf>
<name>aliyun.maven</name>
<url>https://maven.aliyun.com/repository/public/</url>
</mirror>
安装RocketMQ
1. 下载
推荐直接安装官方的二进制版本:
bash
root@instance-yo4hab98:/usr/local/rocketMQ# wget https://archive.apache.org/dist/rocketmq/5.1.2/rocketmq-all-5.1.2-bin-release.zip
# 解压
root@instance-yo4hab98:/usr/local/rocketMQ# apt install unzip -y
root@instance-yo4hab98:/usr/local/rocketMQ# unzip rocketmq-all-5.1.2-bin-release.zip
当然你也可以去github下载源码版本:
https://github.com/apache/rocketmq/releases
|----------------------------------------|---------|
| | 能不能直接用 |
| rocketmq-all-xxx-bin-release.zip 二进制版本 | 能,解压就能跑 |
| rocketmq-rocketmq-all-xxx.tar.gz 源码版本 | 不能,没有编译 |
2. 进入Ubuntu控制台.
2.1 配置
前提 有jdk环境
RocketMQ 默认吃 8G 内存,因此内存不够的话 需要修改参数
2.1.1 修改 Name Server的参数
注:nano 和 vi 都是文本编辑器
nano 更加简单直观;ctrl+o保存 enter确认 ctrl+x退出
vi 强大高效;i 进入编辑模式 Esc退出编辑模式 :wq保存退出 :q!强制退出
bash
# 后面我在启动NameServer的时候也遇到了内存不足,启动失败,内存大的可以忽略
cd /usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release/bin
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release/bin# nano runserver.sh
# 找到 JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g"
# 改为 JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
2.1.2 修改Broker参数
bash
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release# vi bin/runbroker.sh
# 找到这行 -Xms8g -Xmx8g -Xmn4g
# 改为:-Xms512m -Xmx512m -Xmn256m
2.1.3 修改Broker配置文件参数
bash
# 修改broker配置文件,允许自动创建topic,以及NameServer地址
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release/conf# nano broker.conf
# 在后面加上以下内容:
# 告诉 Broker 去哪里找 NameServer(注册中心); 除非nameserver和broker在同一台机器 也就是单机开发,否则不能使用localhost
namesrvAddr = 106.xx.xx.xxx:9876
# 告诉 NameServer:外部客户端应该通过哪个 IP 访问我,除非外部服务和rocket在同一台机器,否则不能使用localhost
brokerIP1 = 106.xx.xx.xxx
# 允许自动创建Topic
autoCreateTopicEnable = true
2.2 启动nameServer
bash
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release# nohup sh bin/mqnamesrv &
[1] 2807305
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release# nohup: ignoring input and appending output to 'nohup.out'
[1] 2807305→ 后台进程启动成功(PID = 2807305)nohup: ignoring input...→ 标准提示,表示:- 不接收终端输入
- 输出写到
nohup.out
可以查看日志看有没有启动 成功
bash
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release# tail -f ~/logs/rocketmqlogs/namesrv.log
2.3 启动Broker
bash
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release# nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.conf&
[2] 2813102
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release# nohup: ignoring input and appending output to 'nohup.out'
# 查看日志
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release# tail -f ~/logs/rocketmqlogs/broker.log
2.4 验证
jps 是 Java 自带的一个工具,全称:Java Process Status
👉 用来查看当前机器上运行的 Java 进程;类似 Linux 的:ps -ef | grep java
运行后如下结果,表示启动成功。
bash
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release# jps
2813134 BrokerStartup
2814620 Jps
2807332 NamesrvStartup
使用官方自带的 测试工具 测试 发送一些消息测试:
bash
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release# sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
使用官方自带的 测试工具 消费一些消息:
bash
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release# sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
2.5 常用知识
端口检查:NameServer的是9876;Brokers的是10911;
bash
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release# lsof -i:9876
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release# lsof -i:10911
停止服务
bash
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release# sh bin/mqshutdown broker
root@instance-yo4hab98:/usr/local/rocketMQ/rocketmq-all-5.1.2-bin-release# sh bin/mqshutdown namesrv
服务连接rocketMQ
除了服务器安全组放行外,可能需要放开防火墙对应的tcp连接
bash
# 允许
root@instance-yo4hab98:/usr/local/rocketmq-dashboard# ufw allow 9876/tcp
root@instance-yo4hab98:/usr/local/rocketmq-dashboard# ufw allow 10911/tcp
# 重载
root@instance-yo4hab98:/usr/local/rocketmq-dashboard# ufw reload
# 查看防火墙
root@instance-yo4hab98:/usr/local/rocketmq-dashboard# ufw status
常见错误
-
启动失败:99%没有改对内存
-
找不到日志:在 ~/logs/rocketmqlogs/
-
连接失败:没有启动NameServer
-
启动顺序错误:必须NameServer -> Broker
3. 安装rocketmq-dashboard
https://github.com/apache/rocketmq-dashboard/tags
下载 解压
bash
root@instance-yo4hab98 # cd /usr/local
root@instance-yo4hab98:/usr/local# mkdir rocketmq-dashboard
root@instance-yo4hab98:/usr/local# cd ./rocketmq-dashboard/
root@instance-yo4hab98:/usr/local/rocketmq-dashboard# ls
rocketmq-dashboard-rocketmq-dashboard-2.0.0.zip
root@instance-yo4hab98:/usr/local/rocketmq-dashboard# unzip rocketmq-dashboard-rocketmq-dashboard-2.0.0.zip
进入源码文件中 进行编译
bash
mvn clean package -Dmaven.test.skip=true
如果编译报错,可能是jdk版本的问题,可以直接在Windows上编译,然后把jar包上传到这里。
随后切换到jar包所在的目录:
bash
root@instance-yo4hab98:/usr/local/rocketmq-dashboard# nohup java -jar rocketmq-dashboard-2.0.0.jar &
#查看日志
root@instance-yo4hab98:/usr/local/rocketmq-dashboard# tail -f nohup.out
然后如果是服务器 就在安全组放开8080端口,除此之外 防火墙放开8080端口
bash
# 查看防火墙
root@instance-yo4hab98:/usr/local/rocketmq-dashboard# ufw status
# 允许
root@instance-yo4hab98:/usr/local/rocketmq-dashboard# ufw allow 8080
root@instance-yo4hab98:/usr/local/rocketmq-dashboard# ufw allow 8080/tcp
# 重载
root@instance-yo4hab98:/usr/local/rocketmq-dashboard# ufw reload
# 查看防火墙
root@instance-yo4hab98:/usr/local/rocketmq-dashboard# ufw status
随后访问呢 http://ip:8080