前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RocketMQ 环境搭建

RocketMQ 环境搭建

作者头像
张申傲
发布2020-09-03 11:36:42
8600
发布2020-09-03 11:36:42
举报
文章被收录于专栏:漫漫架构路

RocketMQ 环境搭建

一. 开发环境

  1. 操作系统:CentOS7
  2. JDK1.8

二. 安装JDK

  1. 下载jdk-8u181-linux-x64.tar.gz包到/usr/local下
  2. 解压
代码语言:javascript
复制

 tar -zxvf jdk-8u181-linux-x64.tar.gz
 
  1. 重命名
代码语言:javascript
复制

 mv jdk1.8.0_181/ ./jdk1.8
 
  1. 配置Java环境变量 修改配置文件
代码语言:javascript
复制
/etc/profile vi /etc/profile  
  1. 在文件末尾增加Java环境变量配置
代码语言:javascript
复制
export JAVA_HOME=/usr/local/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
  1. 保存退出,使修改生效
代码语言:javascript
复制
source /etc/profile
  1. 输入java -version命令,如果出现以下提示,则表示JDK安装配置成功
代码语言:javascript
复制
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

三. RocketMQ源码下载与编译

  1. 源码包zip格式下载地址:http://rocketmq.apache.org/docs/quick-start/ 或者也可以通过Github下载源码:https://github.com/apache/rocketmq
  2. 使用IDEA导入项目,并使用Maven编译
代码语言:javascript
复制

 mvn -Prelease-all -DskipTests clean install -U
 
  1. 生成的jar包在rocketmq-distribution模块下,名称为apache-rocketmq.tar.gz
  2. 将apache-rocketmq.tar.gz拷贝到Linux的/usr/local路径下

四. RocketMQ的单节点部署

  1. 在/etc/hosts配置中添加RocketMQ节点信息
代码语言:javascript
复制
192.168.31.197 rmq-namesrv01
192.168.31.197 rmq-master01
  1. 由于是单节点部署,所以在同一台机器上同时部署NameServer和Broker
  2. 创建目录,将文件解压到指定目录下
代码语言:javascript
复制
mkdir rocketmq
tar -zxvf apache-rocketmq.tar.gz -C ./rocketmq/
  1. 创建RocketMQ的存储路径,RocketMQ将所有数据都记录在磁盘的该路径下
代码语言:javascript
复制
mkdir /usr/local/rocketmq/store
mkdir /usr/local/rocketmq/store/commitlog
mkdir /usr/local/rocketmq/store/consumequeue
mkdir /usr/local/rocketmq/store/index
  1. 修改配置文件,这里以2m-2s-async 为例
代码语言:javascript
复制
vi /usr/local/rocketmq/conf/2m-noslave/broker-a.properties
  1. 将配置文件修改如下:
代码语言:javascript
复制
#所属集群名字
brokerClusterName=cluster-01
#broker 名字,注意此处不同的配置文件填写的不一样 
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer 地址,分号分割 
namesrvAddr=192.168.31.197:9876 
#broker地址
brokerIP1=192.168.31.197
#在发送消息时,自动创建服务器不存在的 topic,默认创建的队列数 
defaultTopicQueueNums=4
#是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭 
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4 点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog 每个文件的大小默认 1G 
mapedFileSizeCommitLog=1073741824
#ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整 
mapedFileSizeConsumeQueue=300000 
#destroyMapedFileIntervalForcibly=120000 
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/rocketmq/store
#commitLog 存储路径 
storePathCommitLog=/usr/local/rocketmq/store/commitlog 
#消费队列存储路径存储路径 
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue 
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/store/index
#checkpoint 文件存储路径 
storeCheckpoint=/usr/local/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4 
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000 
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制 Master 
#- SYNC_MASTER 同步双写 Master 
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘 
#- SYNC_FLUSH 同步刷盘 
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false 
#发消息线程池数量 
#sendMessageThreadPoolNums=128 
#拉消息线程池数量 
#pullMessageThreadPoolNums=128
  1. 配置的具体含义会在后面的文章中详细介绍。
  2. 修改日志配置
代码语言:javascript
复制
mkdir /usr/local/rocketmq/logs
cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml
  1. RocketMQ在启动时,默认会分配8G的堆内存,我们在日常开发情况下可以根据需要修改JVM参数。
  2. 修改NameServer启动脚本
代码语言:javascript
复制

 vi /usr/local/rocketmq/bin/runserver.sh
  1. 将JVM参数改为如下设置
代码语言:javascript
复制

 JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
 
  1. 修改Broker启动脚本
代码语言:javascript
复制

 vi /usr/local/rocketmq/bin/runbroker.sh JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"
 
  1. 启动应用 先启动NameServer
代码语言:javascript
复制

 cd /usr/local/rocketmq/bin/ nohup sh mqnamesrv &
 
  1. 再启动Broker,此时需要制定配置文件路径
代码语言:javascript
复制

 cd /usr/local/rocketmq/bin nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties &
 

五. RocketMQ控制台监控

  1. 从Github上下载rocketmq-externals工程源码:https://github.com/apache/rocketmq-externals
  2. 打开rocketmq-console工程,修改application.properties文件,指定NameServer地址:
代码语言:javascript
复制
server.contextPath=
server.port=8080
#spring.application.index=true
spring.application.name=rocketmq-console
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
logging.config=classpath:logback.xml
#if this value is empty,use env value rocketmq.config.namesrvAddr  NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876
rocketmq.config.namesrvAddr=192.168.31.197:9876
#if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true
rocketmq.config.isVIPChannel=
#rocketmq-console's data path:dashboard/monitor
rocketmq.config.dataPath=/tmp/rocketmq-console/data
#set it false if you don't want use dashboard.default true
rocketmq.config.enableDashBoardCollect=true
  1. 启动SpringBoot项目,访问http://192.168.31.197:8080,就可以看到RocketMQ的控制台界面。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/11/03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • RocketMQ 环境搭建
    • 一. 开发环境
      • 二. 安装JDK
        • 三. RocketMQ源码下载与编译
          • 四. RocketMQ的单节点部署
            • 五. RocketMQ控制台监控
            相关产品与服务
            文件存储
            文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档