菜单
非容器方式安装
安装RocketMQ
首先安装JDK:
点击进行下载:Java Downloads | Oracle
# 1.进入/data/app目录下解压缩文件到当前目录
tar -zxvf jdk-8u333-linux-x64.tar.gz
# 2.编辑文件
vim /etc/profile
# 3.文件末尾处添加环境变量
#Java Env
export JAVA_HOME=/data/app/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
# 4.使环境变量生效
source /ect/profile
# 5. 查看java版本
java -version
下载RocketMQ
RocketMQ官网:https://rocketmq.apache.org/
shell>wget https://archive.apache.org/dist/rocketmq/4.9.3/rocketmq-all-4.9.3-bin-release.zip
shell>unzip rocketmq-all-4.9.3-bin-release.zip
##然后通过mv 移动目录并改名
配置环境变量
我们需要将刚刚解压的 rocketmq 路径配置到环境变量中
//编辑profile文件
# vim /etc/profile
//将以下代码配置进去,我这里路径是/data/app/rocketmq
//你们只需根据自己实际路径进行替换即可
#RocketMQ
export ROCKETMQ_HOME=/data/app/rocketmq
export PATH=$PATH:$ROCKETMQ_HOME/bin:$PATH
//使刚修改的配置文件生效
# source /etc/profile
//验证刚刚的路径配置是否生效
# echo $ROCKETMQ_HOME
//显示出路径地址代表配置没有问题
/data/rocketmq
运行RocketMQ
修改RocketMQ配置文件
1、RocketMQ Broker 默认配置的 jvm 虚拟机内存大小可能比较大,如果不修改会导致启动不起来,这里我们根据自己的实际需要进行修改。
shell>cd /data/app/rocketmq/bin
shell>vim runserver.sh
修改:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
添加(如果是多个JAVA环境,可以这样定义使用的JDK):
JAVA_HOME=/data/app/jdk
shell>vim runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
添加(如果是多个JAVA环境,可以这样定义使用的JDK):
JAVA_HOME=/data/app/jdk
根据官网的提示,运行需要开启 Name Server 和 Broker
启动 Name Server
###启动Name Server
[root@rancher bin]# sh mqshutdown namesrv
###后台启动Name Server
[root@rancher bin]# nohup sh mqnamesrv &
[1] 13004
###删除Name Server进程
[root@rancher bin]# sh mqshutdown namesrv
The mqnamesrv(13022) is running...
Send shutdown request to mqnamesrv(13022) OK
###查看日志
[root@rancher bin]# tail -f ~/logs/rocketmqlogs/namesrv.log
启动 Broker
###启动Broker
[root@rancher bin]# sh mqbroker
###后台启动Broker
[root@rancher bin]# nohup ./mqbroker -n localhost:9876 &
[1] 13303
###删除Broker进程
[root@rancher bin]# sh mqshutdown broke
Useage: mqshutdown broker | namesrv
[1]+ Exit 255 nohup ./mqbroker -n localhost:9876
####查看日志
[root@rancher bin]# tail -f ~/logs/rocketmqlogs/broker.log
Docker安装(服务器内存至少需要2G)
https://www.jianshu.com/p/706588323276
https://juejin.cn/post/7045944869642043422
1. 镜像制作前准备
1.1 clone rocketmq-docker项目的代码
#官方的docker地址
git clone https://github.com/apache/rocketmq-docker.git
2. 构建镜像
这里需要构建的镜像有两个
- rocketmq-dashboard镜像(web控制台)
- rocketmq镜像(NameSrv和Broker)
2.1 rocketmq镜像构建
具体版本可以通过下面链接查看
https://archive.apache.org/dist/rocketmq/
cd image-build
#sh build-image.sh RMQ-VERSION BASE-IMAGE
sh build-image.sh 4.9.3 centos
原理:通过版本和BASE-IMAGE(支持centos, alpine)来判断是使用 Dockerfile-centos文件还是Dockerfile-alpine文件来构建镜像。
2.2 rocketmq-dashboard镜像构建
和构建rocketmq镜像一样,我们依葫芦画瓢构建rocketmq-dashboard镜像
题外:在构建rocketmq-dashboard的时候可以修改Dockerfile-centos-dashboard文件的最后一条命令如:ENTRYPOINT [“java”,”${JAVA_OPTS}”, “-jar”, “bin/rocketmq-dashboard.jar”]; 这样构建的镜像可以调节JVM的内存大小.好处
shell>vim Dockerfile-centos-dashboard
本教程并不修改此处!!!!
cd image-build
#sh build-image-dashboard.sh dashboard-VERSION BASE-IMAGE
sh build-image-dashboard.sh 1.0.0 centos
等待镜像构建完成,然后通过docker命令查看,docker images
3. Docker-compose 安装
这里为什么用Docker-compose 安装呢?因为RocketMQ的安装的东西有三个部分:namesrv、broker、rocketmq-dashboard ,用Docker-compose安装起来比较方便。
3.1 环境准备
本地已经有了rocketmq-dashboard镜像和rocketmq镜像
3.2 RockerMQ 单机部署
3.2.1 NameSrv的Docker宿主机环境
主要配置的是日志路径以及存储路径。(挂载路径)
mkdir -p /data/app/rocketmq/namesrv/data/logs
mkdir -p /data/app/rocketmq/namesrv/data/store
3.2.2 Broker的Docker宿主机环境
主要创建日志、数据存储、以及配置存放的挂载路径(注意如果需要挂在logs和store需要先创建好目录)
mkdir -p /data/app/rocketmq/broker/data/logs
mkdir -p /data/app/rocketmq/broker/data/store
mkdir -p /data/app/rocketmq/broker
3.2.3 Broker配置文件创建
vim /data/app/rocketmq/broker/broker.conf
文件内容如下:
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 主机IP
brokerIP1 = 192.168.8.21
例如:在Docker宿主机通过命令查询到的IP地址为 192.168.8.21
那么这个地方就设置为 192.168.8.21
3.2.4 编写Docker-compose文件
这里编写Docker-compose文件版本使用的3,有的人docker可能版本没这么高
shell> vim docker-compose.yml
version: '3'
services:
namesrv:
image: apacherocketmq/rocketmq:4.9.3
container_name: rocketmq-namesrv
ports:
- 9876:9876
environment:
- JAVA_OPT_EXT=-server -Xms256m -Xmx256m -Xmn256m
volumes:
- /data/app/rocketmq/namesrv/data/logs:/home/rocketmq/logs
command: sh mqnamesrv
broker:
image: apacherocketmq/rocketmq:4.9.3
container_name: rocketmq-broker
links:
- namesrv
depends_on:
- namesrv
ports:
- 10909:10909
- 10911:10911
- 10912:10912
environment:
- NAMESRV_ADDR=namesrv:9876
- JAVA_OPT_EXT=-server -Xms256m -Xmx256m -Xmn128m
volumes:
# 先不要考虑这个logs和store挂载,会报错
# - /data/app/rocketmq/broker/data/logs:/home/rocketmq/logs
# - /data/app/rocketmq/broker/data/store:/home/rocketmq/store
- /data/app/rocketmq/broker/broker.conf:/home/rocketmq/conf/broker.conf
command: ["sh","mqbroker","-c","/home/rocketmq/conf/broker.conf","-n","namesrv:9876","autoCreateTopicEnable=true"]
dashboard:
image: apache/rocketmq-dashboard:1.0.0-centos
container_name: rocketmq-dashboard
ports:
- 8080:8080
links:
- namesrv
depends_on:
- namesrv
environment:
- NAMESRV_ADDR=namesrv:9876
运行命令:
docker-compose -f ./docker-compose.yml up
然后查看运行的情况。
然后在本地登录web控制台进行验证
docker集群部署RocketMQ
https://zhuanlan.zhihu.com/p/166204662
https://blog.csdn.net/liuchang19950703/article/details/112446920