一 , Windows 下借助Docker 安装
安装之前请确保Windows下 Docker 环境已经配置完成
1,镜像拉取
docker pull rocketmqinc/rocketmq:latest
2,启动 namesrv
docker run -d -p 9876:9876 -v D:/programCoding/Docker/rocketmq/namesrv/logs:/root/logs -v D:/programCoding/Docker/rocketmq/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv
namesrv 作用
1,定位为注册中心,保存broker节点库路由信息
2,支持集群模式,每个 namesrv 之间不进行任何通信,多点容灾通过 producer/consumer 再访问 namesrv 时候轮询获取信息(当前节点访问失败就转向下一个)。
3,namesrv 作为注册中心,负责接收 broker 定期注册信息并维持再内存中,所有数据都保存在内存中,broker 定期的注册过程的也是遍历所有 namesrv 进行注册;
4,namesrv 提供对外接口对 producer 和 consumer 访问 broker 路由信息,底层用 netty 来实现。
5,namesrv 对 broker 存活检测采用心跳机制,即 namesrv 作为 broker 的 server 端定期接收 broker 的心跳信息,超时无心跳就移出 broker ,底层通过 epoll 的消息机制来检测连接是否稳定。
3,启动 broker命令
docker run -d -p 10911:10911 -p 10909:10909 -v D:/programCoding/Docker/rocketmq/bocker/logs:/root/logs -v D:/programCoding/Docker/rocketmq/bocker/store:/root/store -v D:/programCoding/Docker/rocketmq/conf/broker.conf:/opt/rocketmq/conf/broker.conf --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq/conf/broker.conf
启动bocker前需要修改下 bocker.conf 配置文件, 本人的bocker.conf 的安装路径为 D:/programCoding/Docker/rocketmq/conf
brokerClusterName = DefaultCluster // 消费模式,默认集群 brokerName = broker-a brokerId = 0 deleteWhen = 04// 清除未被消费消息时间,凌晨四点 fileReservedTime = 48 // 消息保留时间 brokerRole = ASYNC_MASTER // broker角色,默认为异步MASTER flushDiskType = ASYNC_FLUSH // 刷盘策略,异步刷盘 brokerIP1 = 192.168.8.128 //Linux下填Linux公网Ip,Windows利用 docker inspect [imageId],查看IPAddress
4, 拉取 Rocket-console 控制台
docker pull styletang/rocketmq-console-ng • 1
4.1 docker 启动 Rocket-console
docker run -d -e "JAVA_OPTS=-Drocketmq.config.namesrvAddr=172.29.80.1:9876 -Drocketmq.config.isVIPChannel=false" -p 9999:8080 -t --name rmConsole styletang/rocketmq-console-ng
浏览器输入 localhost:9999,即可看到安装预览效果
二,Windows 借助二进制执行文件安装 RocketMQ
1,下载二进制文件、解压,假设安装磁盘地址 D:\rocketmq
二进制文件压缩包下载地址:
https://dlcdn.apache.org/rocketmq/4.9.3/rocketmq-all-4.9.3-source-release.zip
2,设置环境变量 ROCKETMQ_HOME
和 NAMESRV_ADDR
打开 powershell 输入以下命令
$Env:ROCKETMQ_HOME="D:\rocketmq" $Env:NAMESRV_ADDR="localhost:9876"
3,启动Name Server,打开 powershell 窗口,输入
.\bin\mqnamesrv.cmd • 1
4,启动 Broker ,打开 powershell 窗口,输入
.\bin\mqbroker.cmd -n localhost:9876 autoCreateTopicEnable=true
5,Producer发送消息
.\bin\tools.cmd org.apache.rocketmq.example.quickstart.Producer
6,Consumer消费消息
.\bin\tools.cmd org.apache.rocketmq.example.quickstart.Consumer
7,关闭name-server、boker服务器 。 Windows 下关闭对应 powershell 窗口即可。
安装时可能遇到的错误,以及解决方案:
1,启动 bocker 时,启动不起来,出现类似于以下内存不足报错信息
Java HotSpot(TM) 64-Bit Server VM warning: error='Cannot allocate memory' (errno=12)
解决方案:Linux下 找 runserver.sh,runboker.sh ;Windwos 下找 runserver.cmd,runboker.cmd,打开后,定位到以下位置
替换为以下相关设置,减小JVM最大内存申请量
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn125m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"