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文件的步骤, 一.安 ...
随机推荐
- java.lang.NoClassDefFoundError: org/I0Itec/zkclient/IZkStateListener
spark streaming 读 kafka 报错 java.lang.NoClassDefFoundError: org/I0Itec/zkclient/IZkStateListener java ...
- Kafka消费者手动提交消息偏移
生产者每次调用poll()方法时,它总是返回由生产者写入Kafka但还没有消费的消息,如果消费者一致处于运行状态,那么分区消息偏移量就没什么用处,但是如果消费者发生崩溃或者有新的消费者加入群组,就会触 ...
- 02-Dockerfile的基本使用
1. FROM 作用:指定基础镜像 使用:FROM 镜像名 demo: FROM mysql FROM mysql:5.6 2. RUN 作用:指令是用来执行命令行命令的 使用: shell格式:RU ...
- 浅谈强连通分量(Tarjan)
强连通分量\(\rm (Tarjan)\) --作者:BiuBiu_Miku \(1.\)一些术语 · 无向图:指的是一张图里面所有的边都是双向的,好比两个人打电话 \(U ...
- 配合php伪协议利用文件包含漏洞
文章来源: https://blog.csdn.net/zpy1998zpy/article/details/80598768?utm_medium=distribute.pc_relevant.no ...
- ADF 第六篇:Copy Data Activity详解
在Azure 数据工程中,可以使用Copy Data 活动把数据从on-premises 或云中复制到其他存储中.Copy Data 活动必须在一个IR(Integration Runtime)上运行 ...
- EF中使用UnitOfWork
前言 关于EF5中使用UnitWork,参见另一博文: https://www.cnblogs.com/masonblog/p/9801162.html 每次提交数据库都会打开一个连接,造成结果是: ...
- [.NET] - Enhanced Strong Naming (加强版的强签名程序集) – 如何迁移原有的强命名程序集
依据文档: https://msdn.microsoft.com/en-us/library/hh415055(v=vs.110).aspx 虽然文档上给出了看似完整的步骤,但是如果按照上面的步骤,结 ...
- 图解 Java 数据结构
图解Java数据结构: 一.链表 Java ListNode https://www.cnblogs.com/easyidea/p/13371863.html 二.栈 ...
- Java学习日报8.6
<构建之法:现代软件工程>读后感 比起一般的教学类书籍,这本书更像是一本传记小说,作者邹欣以自己或者说一些典型的软件工程师为例子,详细介绍了一个软件工程师的工作内容,全书给我的感觉就是以一 ...