【运维技术】CentOS7上从零开始安装阿里RocketMQ版本:release-4.0.1【亲测哈哈】
CentOS7上从零开始安装阿里RocketMQ版本:release-4.0.1【亲测哈哈】
安装git
# 更新包
$ yum update
# 安装git
$ yum install git
# 验证git安装成功
$ git --version
# 这样git即可安装成功
安装wget依赖包
# 更新包
$ yum install wget
# 安装完成后可以使用wget命令
安装jdk
# 登录SSH到linux的默认用户路径下(我使用的是root用户)
# 下载JDK:使用官方网站的下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
$ wget http://220.112.193.200/files/9130000004D8B9C4/download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz .
# 转移到目录中解压
$ cp /root/jdk-8u144-linux-x64.tar.gz /usr/local/
# 切换目录
$ cd /usr/local
# 解压
$ tar -xvf jdk-8u144-linux-x64.tar.gz
# 创建软连接将jdk的软连接到jdk8上
$ ln -s jdk-8u144-linux-x64.tar.gz jdk8
# 进入更目录修正环境变量
$ vi ~/.bash_profile
# 在尾部添加环境变量如下
JAVA_HOME=/usr/local/jdk8
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
# 使用insert模式,用esc+ ‘:wq’完成编辑,使用source完成编辑
$ source ~/.bash_profile
# 验证jdk安装成功
$ java -version
安装maven
# 登录SSH到linux的默认用户路径下(我使用的是root用户)
# 下载maven:http://maven.apache.org/download.cgi
$ wget http://211.162.127.22/files/2245000004204200/mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz .
# 移动到目录中解压
$ cp /root/apache-maven-3.5.0-bin.tar.gz /usr/local/
# 切换目录
$ cd /usr/local/
# 解压
$ tar -xvf apache-maven-3.5.0-bin.tar.gz
# 创建软连接(将软连接上maven工程,保证以后改变apache不用改环境变量的配置)
$ ln -s apache-maven-3.5.0/ maven
# 进入更目录修正环境变量
$ vi ~/.bash_profile
# 在尾部添加环境变量如下
MAVEN_HOME=/usr/local/maven
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
# 使用insert模式,用esc+ ‘:wq’完成编辑,使用source完成编辑
$ source ~/.bash_profile
# 验证maven安装成功
$ mvn -version
安装RocketMQ
这边我们使用源码编译安装,参考从github上面拉取源代码进行编译,然后使用maven进行编译
拉取代码和通过maven进行编译
# 选择git代码下载目录,拉取源代码(可以拉取当前最新版本的分支:release-4.1.0-incubating)
$ git clone -b release-4.1.0-incubating https://github.com/apache/incubator-rocketmq.git
# 切换到文件目录
$ cd incubator-rocketmq
# 使用maven编译,下载jar包等待编译成功
$ mvn -Prelease-all -DskipTests clean install -U
# 切换到编译完成的目录的bin目录准备启动服务器
$ cd distribution/target/apache-rocketmq/bin
启动名称服务器(name Server)(可以设置集群)
可以通过命令
vi runserver.sh
修改jvm 配置
# 启动命令,并且常驻内存
$ nohup sh mqnamesrv &
# 查看启动日志能看到:The Name Server boot success字样则成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
启动Broker(可以设置集群,master,slave)
可以通过命令
vi runbroker.sh
修改jvm 配置
# 启动命令,并且常驻内存:注意ip地址要配置成为服务的ip地址,保证地址以及端口能够访问(官方的有点问题)
$ nohup sh mqbroker -n "192.168.1.113:9876" -c ../conf/2m-noslave/broker-a.properties > broker.out &
# 我启动的时候报错了, 原因是对应的runbroker的配置将虚拟机的内存大小设置为4g了,我内存不够,所以我改成最大2g如下
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g"
# 查看启动日志
$ tail -f ~/logs/rocketmqlogs/broker.log
关闭RcocketMQ相关服务
# 停止broker服务
$ sh mqshutdown broker
# 定制nameserver服务
$ sh mqshutdown namesrv
向MQ发送和接收消息
# 在bin目录下面执行,将服务器地址引入到环境变量中
$ export NAMESRV_ADDR=192.168.1.113:9876
# 通过java代码实现的案例生产者生产消息
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
# 通过java代码实现案例消费者消费消息
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
监控MQ
# 调用命令监控在target的bin目录下
$ sh mqadmin clusterList -n 192.168.1.113:9876
相关注意事项
本文中的ip地址都是对应的服务器ip地址,
Java代码中的消费者是不是进程停止的,一直在监听消费
【运维技术】CentOS7上从零开始安装阿里RocketMQ版本:release-4.0.1【亲测哈哈】的更多相关文章
- 比Ansible更吊的自动化运维工具,自动化统一安装部署自动化部署udeploy 1.0 版本发布
新增功能: 逻辑与业务分离,完美实现逻辑与业务分离,业务实现统一shell脚本开发,由框架统一调用. 并发多线程部署,不管多少台服务器,多少个服务,同时发起线程进行更新.部署.启动. 提高list规则 ...
- 【运维技术】CentOS7上从零开始安装LAMP安装织梦DedeCMS教程
前期准备数据 centos7 系统 安装 appache httpd # 更新httpd yum update httpd # 安装httpd yum install -y httpd # 启动服务 ...
- 【Linux运维】Centos7上借助ansible搭建LVS+Keepalived
安装ansible 安装ansible: [root@localhost ~]# /etc/hosts 192.168.19.129 web129.yanglt.com web129 192.168. ...
- 【运维技术】Nexus私服安装配置常用问题
maven私服安装配置 软件安装及基本配置 安装配置 # 安装jdk,参考其他教程 mkdir -p /app/nexus2 # 创建目录 wget https://download.sonatype ...
- 干货云集 WOT 2017全球架构与运维技术峰会揭密技术难点
WOT,World Of Tech专注互联网IT技术领域,是一场不容错过的技术盛会!WOT 2017全球架构与运维技术峰会三大章节,15大技术专场,60+国内外一线互联网精英大咖站台,打造兼顾技术视野 ...
- 亲爱的,我是一条Linux运维技术学习路径呀。
根据我的经验,人在年轻时,最头疼的一件事就是决定自己这一生要做什么.在这方面,我倒没有什么具体的建议:干什么都可以,但最好不要写小说,这是和我抢饭碗.总而言之,干什么都是好的:但要干出个样子来,这才是 ...
- saltstack自动化运维系列⑧SaltStack实践配置管理安装nginx-1.10.3
saltstack自动化运维系列⑧SaltStack实践配置管理安装nginx-1.10.3 安装nginx-1.10.3.tar.gz # mkdir -p /srv/salt/prod/pkg / ...
- 运维自动化之ansible的安装与使用 转
运维自动化之ansible的安装与使用 随着服务器数量的增长,我们需要一个批量工具去提高工作效率,之前用的是puppet,ansible的简单,适用让我眼前一亮,决定写一篇ansible从安装到基本配 ...
- 技术沙龙|京东云DevOps自动化运维技术实践
自动化测试体系不完善.缺少自助式的持续交付平台.系统间耦合度高服务拆分难度大.成熟的DevOps工程师稀缺,缺少敏捷文化--这些都是DevOps 在落地过程中,或多或少会碰到的问题,DevOps发展任 ...
随机推荐
- thinkjs——moment.js之前后台引入问题
前言: 工作中时常会遇见处理时间格式化问题:简言之就是将存在数据库中的时间戳的数字以“YYYY-MM-DD HH:mm:ss”格式展现出来. 过程: 1.在html文件中,通常是引入moment.js ...
- Android英文文档翻译系列(2)——HandlerThread
public class HandlerThread extends Thread Class Overview Handy class for starting a new threa ...
- linux发布项目
1.右击项目 export --->war file 上传到linux服务器 2.解压 jiar -xvf xx.war 3.移动到 tomcat webapps文件中 4.启动tomcat 访 ...
- nutch 1.7导入Eclipse
1.下载Nutch1.7的包 apache-nutch-1.7-src.zip,解压之后应该包括 bin,conf,src等目录 2.将解压之后的 apache-nutch-1.7 文件夹放到ecli ...
- 【BZOJ2007】[Noi2010]海拔 对偶图最短路
[BZOJ2007][Noi2010]海拔 Description YT市是一个规划良好的城市,城市被东西向和南北向的主干道划分为n×n个区域.简单起见,可以将YT市看作 一个正方形,每一个区域也可看 ...
- Python 之定时器
#引入库 threading import threading #定义函数 def fun_timer(): print('hello timer') #打印输出 global timer #定 ...
- ibatis 中#和 $ 符号的区别
1.数据类型匹配 #:会进行预编译,而且进行类型匹配(自动确定数据类型): $:不进行数据类型匹配. 2.实现方式: # 用于变量替换(先生成一个占位符,然后替换) select * from use ...
- 解决命令行执行shell脚本成功,但crontab执行失败
实际生产案例 生产机房自建PPTP客户端通过拨号连接到生产机房,但是一旦客户端网络是意外断线再重新拨号 会产生IP冲突,于是写了一个脚本监控PPTP的IP是否有多个(一般冲突以后会生成2个IP) #! ...
- Javascript计算星座
今天看群里一哥们折腾得挺热乎,手痒随便写了一个DEMO,供初学者参考. 重点,写程序先定注释,明确思路后再写具体代码. //星座定义 var constellations = [ {"Sta ...
- 洛谷 P2602 [ZJOI2010]数字计数
洛谷 第一次找规律A了一道紫题,写篇博客纪念一下. 这题很明显是数位dp,但是身为蒟蒻我不会呀,于是就像分块打表水过去. 数据范围是\(10^{12}\),我就\(10^6\)一百万一百万的打表. 于 ...