RocketMQ 4.5.1 环境搭建


一、RocketMQ环境搭建

1.1 环境要求

软件名称 版本 下载地址
JDK 11.0.5 下载 提取码:6ksb
Linux64位系统 (CentOS Linux release 7.1503) 下载 提取码:8a9u
安装Maven(使用源码安装rocketmq才需要) 3.2.x 下载 提取码:ymli
RocketMQ 4.5.1 下载 提取码:vhye
注意:
 磁盘空间要求:4G+ free  , 向磁盘进行持久化消息操作

1.2 安装及启动

1. 在线下载rocketmq(如果不想使用wget下载,可以直接使用上述提供的软件包)
 # 下载 wget https://archive.apache.org/dist/rocketmq/4.5.1/rocketmq-all-4.5.1-bin-release.zip

2. 解压缩
 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repounzip rocketmq-all-4.5.1-bin-release.zip -d /opt/


3. 配置环境变量


验证搭建结果

4. JDK搭建

5. 注意:修改脚本(使用jdk8没有问题,使用jdk8以上的版本需要修改脚本,否则虚拟机调优等相关的参数无法使用)

修改如下几个文件:

脚本名称 作用
/opt/rocketmq/bin/runserver.sh 保证正常使用nameserver
/opt/rocketmq/bin/runbroker.sh 保证正常使用broker
/opt/rocketmq/bin/tools.sh 保证正常使用系统的测试工具
步骤一:启动nameserver 出错

解决:修改nameserver启动脚本(vi /opt/rocketmq/bin/runserver.sh 修改配置文件)
#!/bin/sh
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#===========================================================================================
# Java Environment Setting
#===========================================================================================
error_exit ()
{echo "ERROR: $1 !!"
exit 1
}
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME
variable in your environment, We need java(x64)!"
export JAVA_HOME
export JAVA="$JAVA_HOME/bin/java"
export BASE_DIR=$(dirname $0)/..
export
CLASSPATH=.:${BASE_DIR}/conf:${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib/*
#===========================================================================================
# JVM Configuration
#===========================================================================================
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=160m"
JAVA_OPT="${JAVA_OPT} -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xlog:gc:/dev/shm/rmq_srv_gc.log -XX:+PrintGCDetails"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
# JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib"
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"
$JAVA ${JAVA_OPT} $@

再次启动:

具体修改参数:

 vim bin/runserver.sh删除UseCMSCompactAtFullCollectionUseParNewGCUseConcMarkSweepGC修改内存:默认4G,目前虚拟机没有这么大的空间JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=64mm -XX:MaxMetaspaceSize=160mm"-Xloggc修改为-Xlog:gc
步骤二:启动broker 出错

解决:修改broker(vi /opt/rocketmq/bin/runbroker.sh 修改配置文件)
 #!/bin/sh# Licensed to the Apache Software Foundation (ASF) under one or more# contributor license agreements. See the NOTICE file distributed with# this work for additional information regarding copyright ownership.# The ASF licenses this file to You under the Apache License, Version 2.0# (the "License"); you may not use this file except in compliance with# the License. You may obtain a copy of the License at##   http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.#===========================================================================================# Java Environment Setting#===========================================================================================error_exit (){echo "ERROR: $1 !!"exit 1}[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"export JAVA_HOMEexport JAVA="$JAVA_HOME/bin/java"export BASE_DIR=$(dirname $0)/..export CLASSPATH=.${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib/*:${BASE_DIR}/conf:${CLASSPATH}#===========================================================================================# JVM Configuration#===========================================================================================JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0"JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/mq_gc_%p.log -XX:+PrintGCDetails"JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"JAVA_OPT="${JAVA_OPT} -XX:+AlwaysPreTouch"JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=15g"JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages -XX:-UseBiasedLocking"#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"numactl --interleave=all pwd > /dev/null 2>&1if [ $? -eq 0 ]thenif [ -z "$RMQ_NUMA_NODE" ] ; thennumactl --interleave=all $JAVA ${JAVA_OPT} $@elsenumactl --cpunodebind=$RMQ_NUMA_NODE --membind=$RMQ_NUMA_NODE $JAVA${JAVA_OPT} $@fielse$JAVA ${JAVA_OPT} --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED $@fi

再次运行:

重点需要添加的参数:jdk9之后使用引入了模块化

具体修改参数:

 vim bin/runbroker.sh删除:PrintGCDateStampsPrintGCApplicationStoppedTimePrintAdaptiveSizePolicyUseGCLogFileRotationNumberOfGCLogFiles=5GCLogFileSize=30m
rocketmq的日志存储位置(方便后续查看rocketmq的执行日志)

rocketmq的数据存储位置(方便后续查看rocketmq的存储数据)

6. 关闭rocketmq

注意:(顺序)先关闭broker,再关闭nameserver

7. 启动NameServer
 # 1.启动NameServermqnamesrv# 2.查看启动日志tail -f /root/logs/rocketmqlogs/namesrv.log

8. 启动Broker
 # 1.启动Brokermqbroker -n localhost:9876# 2.查看启动日志tail -f /root/logs/rocketmqlogs/broker.log

二、RocketMQ环境测试

注意:使用系统的测试工具,需要修改工具相关配置文件(tools)

vi /opt/rocketmq/bin/tools.sh

 #!/bin/sh# Licensed to the Apache Software Foundation (ASF) under one or more# contributor license agreements. See the NOTICE file distributed with# this work for additional information regarding copyright ownership.# The ASF licenses this file to You under the Apache License, Version 2.0# (the "License"); you may not use this file except in compliance with# the License. You may obtain a copy of the License at##   http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.#===========================================================================================# Java Environment Setting#===========================================================================================error_exit (){echo "ERROR: $1 !!"exit 1}[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"export JAVA_HOMEexport JAVA="$JAVA_HOME/bin/java"export BASE_DIR=$(dirname $0)/..# export CLASSPATH=.:${BASE_DIR}/conf:${CLASSPATH}export CLASSPATH=.${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib/*:${BASE_DIR}/conf:${CLASSPATH}#===========================================================================================# JVM Configuration#===========================================================================================JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m"# JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${BASE_DIR}/lib:${JAVA_HOME}/jre/lib/ext"JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"$JAVA ${JAVA_OPT} $@

具体修改参数:

 vim bin/tools.sh# 删除 JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${BASE_DIR}/lib:${JAVA_HOME}/jre/lib/ext"
2.1 接收消息
 # 1.设置环境变量export NAMESRV_ADDR=localhost:9876# 2.接收消息sh /opt/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
2.2 发送消息
 # 1.设置环境变量export NAMESRV_ADDR=localhost:9876# 2.使用安装包的Demo发送消息sh /opt/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer


执行结果

2.3 关闭RocketMQ
 # 1.关闭NameServermqshutdown namesrv# 2.关闭Brokermqshutdown broker

RocketMQ 4.5.1 环境搭建相关推荐

  1. RocketMQ环境搭建

    RocketMQ入门 RocketMQ是阿里巴巴开源的分布式消息中间件,现在是Apache的一个顶级项目.在阿里内部使用非常广泛,已经经过了"双11"这种万亿级的消息流转. Roc ...

  2. RocketMQ单机环境搭建

    大家好,我是冰河~~ 今天,带来一篇搭建RocketMQ单机环境的文章,为后面的分布式事务专栏做准备.RocketMQ是阿里巴巴开源的一款高性能分布式消息中间件,有关RocketMQ的详细讲解,后面会 ...

  3. SpringCloud Alibaba微服务实战(一) - 基础环境搭建

    说在前面 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来 ...

  4. Seata 单机环境搭建_01

    文章目录 一.整合版本说明 1. 毕业版本依赖关系(推荐使用) 2. 组件版本关系 3. 演示版本 二.部署单机 TC Server 2.1. 下载Seata 2.2. 解压缩 2.3. 启动 2.4 ...

  5. JAVA开发与运维(JavaWeb测试环境搭建)

    本例子测试环境搭建在腾讯云平台之上. 系统架构: 微服务+Eureka+Apollo+gateWay+redis+rocketMq+OSS+spark+ETL+mysql+pgsql+clickHou ...

  6. Myth源码解析系列之三- 环境搭建

    环境搭建教程 在上一篇中,我们了解了项目的整体结构,以及每个模块大概的作用,现在我们来开始搭建项目整个环境~~ 本地环境要求(这里事务消息存储为mysql,消息中间件为:rocketmq) JDK:1 ...

  7. 环境搭建(windows): 1.rabbitmq安装 2.web GUI管理插件安装 3.erlang版本和rabbitmq版本之间对应关系

    1)环境搭建参考: https://www.cnblogs.com/wuzhiyuan/p/6845230.html​​​​​​​ 一:安装RabbitMQ需要先安装Erlang语言开发包,百度网盘地 ...

  8. Docker java项目发布/开发环境搭建

    Docker java项目发布/开发环境搭建 线上部署项目/开发环境搭建命令大全 关闭windows10 指定应用 安装Docker 安装 docker-compose 关于docker容器导致硬盘耗 ...

  9. 1.探花交友项目环境搭建

    探花交友项目环境搭建 一.开发工具 探花交友项目的开发统一使用提供的Centos7环境,该环境中部署安装了项目所需要的各种服务,如:RabbitMQ,MongoDB.Redis等. 虚拟机的root用 ...

最新文章

  1. R语言观察日志(part17)--.Primitive
  2. python返回json数据_python和flask中返回JSON数据的方法
  3. mysql修改子分区_创建MySQL子分区方法
  4. 案例|自建or现成工具?小型创业团队敏捷研发探索
  5. 【clickhouse】clickhouse 表引擎之 Buffer
  6. python 基础课程第二天
  7. io读两个文件,生成list 排重后写本地文件(Java)
  8. 哪一类功率放大电路效率最高_集成电路工艺之双极型工艺
  9. SpringBoot集成JWT 实现接口权限认证
  10. STM32——库函数版——独立按键程序
  11. Unity3D开发之制作序列帧动画
  12. Intel CPU发展史
  13. 计算机键盘锁不了怎么办,笔记本电脑键盘没反应是哪个键锁了?该怎么办
  14. 计算机病毒有熊猫病毒,世界最厉害的电脑病毒排名 熊猫烧香病毒最使人讨厌...
  15. 张飞硬件90天学习笔记——第01天个人记录,完整请看我的个人简介/主页
  16. 008九九乘法表(详解)
  17. 什么软件可以测试自己有没有近视,微信APP中怎么测试自己的视力
  18. 码、候选码、主码、全码和外码的区分
  19. 【卡尔曼滤波】离散线性系统的卡尔曼滤波
  20. MATLAB算法实战应用案例精讲-【图像处理】小目标检测(补充篇)(附python代码实现)

热门文章

  1. python基础学习笔记(十二)
  2. 雷林鹏分享:YII 模型-视图-控制器(MVC)设计模式
  3. EDEN-MACE 1.4.0 更新,增加数据清理功能
  4. 视频大压缩的具体操作方法
  5. 勒索病毒入侵中国, Splunk建议网络立即进行区分和隔离设置
  6. SQL Server外连接、内连接、交叉连接
  7. centos6.5下postgresql9.4.3安装与配置
  8. JavaScript 演练(4). 回调函数
  9. AIX上增加逻辑卷时报错误0516-787 extendlv: Maximum allocation for logical volume
  10. 在Word中如何实现后退?