暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

二、RocketMQ的直装部署和Docker-Compose部署

4645

二、服务端安装

安装环境

  1. 64位操作系统,推荐 Linux/Unix/macOS
  2. 64位 JDK 1.8+

2.1 直装

机器IP:192.168.10.104

2.1.1 下载zip

wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip unzip rocketmq-all-4.9.4-bin-release.zip mv rocketmq-all-4.9.4-bin-release /opt/rocketmq
复制

2.1.2 启动NameSrv

按需调整jvm堆参数。虚拟机的适当改小,不然起不来的。

cd /opt/rocketmq #修改nameServer的jvm参数,默认4g vim bin/runserver.sh
复制

#启动nameServer服务 nohup sh bin/mqnamesrv >/dev/null 2>&1 & #查看nameserver的日志 tail -f ~/logs/rocketmqlogs/namesrv.log
复制

2.1.3 启动Broker

Broker配置

vim conf/broker.conf
复制
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
#broker角色
brokerRole = ASYNC_MASTER
#刷盘策略
flushDiskType = ASYNC_FLUSH
#指定nameServer地址
namesrvAddr = 192.168.10.104:9876
#指定Broker的IP,远程注册时避免自动获取ip无法访问
brokerIP1 = 192.168.10.104
brokerIP2 = 192.168.10.104
复制
#修改broker的jvm参数,默认8g vim runbroker.sh #启动broker nohup sh bin/mqbroker -c conf/broker.conf >/dev/null 2>&1 & #查看日志 tail -f ~/logs/rocketmqlogs/broker.log
复制

测试一下

export NAMESRV_ADDR=192.168.10.104:9876 #发送消息 ./bin/tools.sh org.apache.rocketmq.example.quickstart.Producer #消费消息 ./bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
复制

2.1.4 启动控制台

NameServer和Broker搭建完成之后,就可以用来收发消息。为了消息可视化监控和查看,可以搭一套可视化的服务。

使用rocketmq-dashboard搭建,可以使用容器搭建,也可以使用源码构建jar包启动。这里使用Docker启动。

#拉取奖项 docker pull apacherocketmq/rocketmq-dashboard:latest #启动容器 docker run -d --name rd -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.10.104:9876" -p 8080:8080 -t apacherocketmq/rocketmq-dashboard:latest
复制

2.2 docker-compose启动

单节点集群

2.2.1 拉取镜像

docker pull apache/rocketmq:4.9.4 docker pull apacherocketmq/rocketmq-dashboard:1.0.0
复制

2.2.2 配置文件

broker节点的配置文件

#创建broker1的配置文件 mkdir -p /opt/rocketmq/broker/conf && cd /opt/rocketmq/broker/conf vim broker.conf
复制
brokerClusterName = DefaultCluster brokerName = broker-1 brokerId = 0 deleteWhen = 04 fileReservedTime = 72 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH #写上运行主机的IP,公网调用得使用公网IP brokerIP1 = 192.168.10.104
复制

2.2.3 调整挂载目录权限

mkdir -p /opt/rocketmq/broker/logs && mkdir -p /opt/rocketmq/broker/store #容器内是rocketmq用户运行,对应得gid:uid就是3000:3000 chmod -R 755 /opt/rocketmq && chown -R 3000:3000 /opt/rocketmq
复制

2.2.4 启动

cd /root/rocketmq docker-compose up -d
复制

docker-compose.yml

version: '3.3' services: namesrv: image: apache/rocketmq:4.9.4 container_name: rmqnamesrv ports: - 9876:9876 environment: JAVA_OPT_EXT: "-server -Xms512m -Xmx512m" volumes: - /opt/rocketmq/namesrv/logs:/home/rocketmq/logs command: sh mqnamesrv restart: always broker1: image: apache/rocketmq:4.9.4 container_name: rmqbroker links: - namesrv ports: - 10909:10909 - 10911:10911 - 10912:10912 environment: NAMESRV_ADDR: namesrv:9876 JAVA_OPT_EXT: "-server -Xms512m -Xmx512m" volumes: - /opt/rocketmq/broker/logs:/home/rocketmq/logs - /opt/rocketmq/broker/store:/home/rocketmq/store - /opt/rocketmq/broker/conf/broker.conf:/opt/rocketmq-4.9.4/conf/broker.conf command: sh mqbroker -c /opt/rocketmq-4.9.4/conf/broker.conf restart: always dashbord: image: apacherocketmq/rocketmq-dashboard:1.0.0 ports: - 8080:8080 environment: JAVA_OPTS: "-Drocketmq.namesrv.addr=namesrv:9876" restart: always
复制

2.3.5 broker单独启动

如果想启动多个broker就在另外的机器上启动,注册到同一个nameServer上。

docker run -d --name rmqbroker \ -p 10909:10909 -p 10911:10911 -p 10912:10912 \ -e "NAMESRV_ADDR=192.168.10.104:9876" \ -e "JAVA_OPT_EXT=-server -Xms512m -Xmx512m" \ -v /opt/rocketmq/broker/logs:/home/rocketmq/logs \ -v /opt/rocketmq/broker/store:/home/rocketmq/store \ -v /opt/rocketmq/broker/conf/:/opt/rocketmq-4.9.4/conf \ apache/rocketmq:4.9.4 \ sh mqbroker -c /opt/rocketmq-4.9.4/conf/broker.conf
复制
最后修改时间:2023-05-17 10:23:54
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
1人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论