Linux下安装配置rocketmq (单个Master、双Master)
一、环境:
centos7(2台虚拟机):192.168.64.123;192.168.64.125
apache-maven-3.2.5(官网要求maven版本是3.2.x,版本不同,编译rocketmq时可能会有问题)
rocketmq-all-4.4.0
jdk1.8.0_161
二、安装maven
设置jdk、maven环境变量 vim /etc/profile ,添加如下代码,然后 source /etc/profile
(此处省略安装步骤~)
export JAVA_HOME=/opt/jdk1.8.0_161
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar MAVEN_HOME=/opt/apache-maven-3.2.5
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
检查jdk、maven安装是否成功
[root@nameserver1 conf]# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
[root@nameserver1 conf]# mvn -v
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-15T01:29:23+08:00)
Maven home: /opt/apache-maven-3.2.5
Java version: 1.8.0_161, vendor: Oracle Corporation
Java home: /opt/jdk1.8.0_161/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"
三、 安装rocketmq
参考官网 http://rocketmq.apache.org/docs/quick-start/
1、下载,解压文件: unzip rocketmq-all-4.4.0-source-release.zip,结果目录如下图
[root@nameserver2 opt]# ls
apache-maven-3.2.5 apache-maven-3.2.5-bin.tar.gz jdk1.8.0_161 rh rocketmq-all-4.4.0 rocketmq-all-4.4.0-source-release.zip
2、安装rocketmq
cd rocketmq-all-4.3.1
mvn -Prelease-all -DskipTests clean install -U
在执行最后一步的时候会去maven下载相关文件,境外网址下载比较慢。可以使用maven的国内镜像
修改maven的setting.xml文件
cd /opt/apache-maven-3.2.5/conf/
vim settings.xml
setting.xml
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
编译有点慢,成功后结果如下图

进到目录 cd distribution/target/apache-rocketmq

单个Master模式:
启动namesrv服务:nohup sh bin/mqnamesrv & (停止服务sh bin/mqshutdown namesrv)

启动Broker:nohup sh bin/mqbroker -n localhost:9876 & (停止服务 sh bin/mqshutdown broker)
或者指定配置nohup bin/mqbroker -n 192.168.64.123:9876 autoCreateTopicEnable -c conf/broker.conf &

查看启动结果,通过进程、jps命令或者通过namesrv.log、broker.log日志查看



四、测试
#发送消息(在发送/接收消息之前,我们需要告诉客户端名称服务器的位置)
[root@nameserver1 apache-rocketmq]# export NAMESRV_ADDR=localhost:9876
[root@nameserver1 apache-rocketmq]# sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer SendResult [sendStatus=SEND_OK, msgId=C0A8407B235F7D4991AD17087E7B00BB, offsetMsgId=C0A8407B00002A9F00000000000341C0, messageQueue=MessageQueue [topic=TopicTest, brokerName=nameserver1, queueId=1], queueOffset=296] #接收消息
[root@nameserver1 apache-rocketmq]# sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer ConsumeMessageThread_17 Receive New Messages: [MessageExt [queueId=2, storeSize=180, queueOffset=276, sysFlag=0, bornTimestamp=1583378432308, bornHost=/192.168.64.123:38275, storeTimestamp=1583378432311, storeHost=/192.168.64.123:10911, msgId=C0A8407B00002A9F0000000000030764, commitLogOffset=198500, bodyCRC=124332375, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0, properties={MIN_OFFSET=0, MAX_OFFSET=298, CONSUME_START_TIME=1583378851971, UNIQ_KEY=C0A8407B235F7D4991AD17087D340068, WAIT=true, TAGS=TagA}, body=[72, 101, 108, 108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 49, 48, 52], transactionId='null'}]]
五、问题
启动时没有9876进程或者namesrv.log、broker.log 说明启动失败了,查看nohup.out 发下提示 "Cannot allocate memory"

根据本机的内存,修改为合适大小即可
cd distribution/target/apache-rocketmq
vim bin/runserver.sh
## 原来的是
#JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
## 修改成
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx512m -Xmn512m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=640m"
vim bin/runbroker.sh
## 原来的是
#JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
## 修改成
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn125m"
双master模式
master1:192.168.64.123 编辑conf/2m-noslave/broker-a.properties, 追加namesrv字段和对应服务地址(这里只做简单的配置,其他配置可以网上搜索)
[root@nameserver1 conf]# cd 2m-noslave/
[root@nameserver1 2m-noslave]# pwd
/opt/rocketmq-all-4.4.0/distribution/target/apache-rocketmq/conf/2m-noslave
[root@nameserver1 2m-noslave]# ls
broker-a.properties broker-b.properties broker-trace.properties
[root@nameserver1 2m-noslave]# vim broker-a.properties
namesrvAddr=192.168.64.123:9876;1972.168.64.125:9876
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
master2:192.168.64.125 编辑conf/2m-noslave/broker-b.properties,配置同master1
namesrvAddr=192.168.64.123:9876;1972.168.64.125:9876
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
分别启动namsrv、broker
[root@nameserver1 apache-rocketmq]# nohup sh bin/mqnamesrv &
[root@nameserver1 apache-rocketmq]# nohup bin/mqbroker -c conf/2m-noslave/broker-a.properties &
[root@nameserver2 apache-rocketmq]# nohup sh bin/mqnamesrv &
[1] 12144
[root@nameserver2 apache-rocketmq]# nohup: 忽略输入并把输出追加到"nohup.out"
[root@nameserver2 apache-rocketmq]# nohup bin/mqbroker -c conf/2m-noslave/broker-b.properties &
[1] 5496
[root@nameserver2 apache-rocketmq]# nohup: 忽略输入并把输出追加到"nohup.out"
查看集群状态
[root@nameserver1 apache-rocketmq]# sh bin/mqadmin clusterlist -n 192.168.64.123:9876;192.168.64.125:9876
MaxPermSize=128m; support was removed in 8.0
#Cluster Name #Broker Name #BID #Addr #Version #InTPS(LOAD) #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
DefaultCluster broker-a 0 192.168.64.123:10911 V4_4_0 0.00(0,0ms) 0.00(0,0ms) 0 440019.25 0.8596
DefaultCluster broker-b 0 192.168.64.125:10010 V4_4_0 0.00(0,0ms) 0.00(0,0ms) 0 440019.25 -1.0000

rocketmq控制台安装和demo测试就略过了,可以上网查下~
补充一点bin的地址是 distribution/target/apache-rocketmq/bin

Linux下安装配置rocketmq (单个Master、双Master)的更多相关文章
- Linux下安装配置rocketmq
1.安装jdk,如果系统有原来的系统自带的先删掉,因为很多库不全,自己需要到jdk官网下载包. 卸载CentOS自带的OpenJdk: [root@centos-lx /]# rpm -qa | gr ...
- Kali Linux 下安装配置MongoDB数据库 ubuntu 下安装配置MongoDB源码安装数据库
Kali Linux 下安装配置MongoDB数据库 1.下载mongodb.tgz 压缩包: 2.解压到:tar -zxvf mongodb.tgz /usr/local/mongodb 3.创 ...
- Linux 下安装配置 JDK7
Linux 下安装配置 JDK7 配置环境(debian 7) 自从从Oracle收购Sun近三年来,已经有很多变化.早在8月,甲骨文将“Operating System Distributor Li ...
- (转载)Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记
Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记 Linux下配LMAP环境,花了我好几天的时间.之前没有配置过,网上的安装资料比较混乱,加上我用的版本问题,安装过程 ...
- linux 下安装配置jboss as7以及部署应用
linux 下安装配置jboss as7以及部署应用 1.测试平台及软件 centos 5.4 jdk-7u5-linux-i586.rpm jboss-as-7.1.1.Final.zip jbos ...
- Linux下安装配置与使用MySQL数据库
Linux下安装配置与使用MySQL数据库 在Linux下安装做开发时往往少不了要使用到MySQL数据库,下面就Linux系统为例讲解一下,如何安装MySQL数据库,如何启用/停.止MySQL服务,如 ...
- 在linux下安装配置rabbitMQ详细教程
在linux下安装配置rabbitMQ详细教程 2017年12月20日 17:34:47 阅读数:7539 安装Erlang 由于RabbitMQ依赖Erlang, 所以需要先安装Erlang. Er ...
- Linux下安装配置MySQL5.7服务器
Linux下安装配置MySQL服务器 一.安装环境 ============ OS:centos6.8 MySQL:mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz ...
- Linux下安装配置Jmeter5.1,并执行jmx文件
Windows下的jmeter是GUI模式,可查看操作,但是GUI对性能的干扰比较大,所有一般压测会在Linux上运行. 下面是Linux下安装配置Jmeter5.1,并执行jmx文件的步骤, 一.安 ...
随机推荐
- ThreadLocal使用总结
一.ThreadLocal基本使用 1.1使用场景 不同的线程对全局变量进行修改,使用ThreadLocal后会为每个线程创建一个副本,而不会影响其他线程的副本,确保了线程的安全 private st ...
- 什么是java的深浅拷贝?
什么是java的深浅拷贝? 浅拷贝 就是很肤浅的拷贝,只拷贝了别人的地址.没有拷贝地址里面的值.地址里面的值改变后,就都改变了. 深拷贝 就是很深入的拷贝,深入到核心的拷贝,拷贝了别人地址里面的值,别 ...
- 仵航说 Vue用replace修改数组中对象的键值或者字段名 仵老大
仵航说 Vue用replace修改数组中对象的键值或者字段名 仵老大 1.介绍 先看图 今天在项目中遇到了一个问题,例如我现在需要传一些数据到后端,数组例如是 let arr = [ {" ...
- hugging face-基于pytorch-bert的中文文本分类
1.安装hugging face的transformers pip install transformers 2.下载相关文件 字表: wget http://52.216.242.246/model ...
- UWP 实现Tab导航首页
先看效果: 这个是用Pivot来实现 1.自定义Pivot的样式,使用Blend工具生成模板,将HeaderTemplate的布局都隐藏 1 <Style x:Key="PivotSt ...
- Windows Server 2016介绍与安装
版本介绍 Windows Server 2016 Essentials edition Windows Server 2016 Essentials版是专为小型企业而设计的.它对应于Windows S ...
- 浅谈 WebRTC 的 Audio 在进入 Encoder 之前的处理流程
在 WebRTC 中,Audio 数据在被送入编码器之前,有 2 大部分需要特别关注,一是数据采集,二是 Audio Processing. 作者:方来,技术专家,从事 voip 应用开发. 数据采集 ...
- idea 【Maven Projects # Profiles】问题记录
今天启动接一个新项目,然后项目启动后发现启动的环境和预想的不一致,查看 pom 文件确认自己是 dev 无误之后,但是启动的就是 test 环境. 问题 发现了启动环境不对不对之后,自己试了一种解决办 ...
- 看起来很唬人,然而却简单实用的CAP理论
在做分布式系统开发时,经常会或多或少的听到CAP理论.或者是处理节点间数据一致性的问题.CAP理论很简单,但却是很多软件设计的宏观指导,因此也有人将之称为架构师必须掌握的理论之一.鉴于理论的东西相对来 ...
- 指令重排序 as-if-serial
笔者认为看完一本书或刚要了解完一个知识点 最好自己先运行一些DEMO 自己尝试着去了解下各种意思 这样知识点最终一定是你的.靠死记硬背的讨论或简单的粗暴的看下资料 脑子里肯定还是一团浆糊. p.p ...