一、环境:

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)的更多相关文章

  1. Linux下安装配置rocketmq

    1.安装jdk,如果系统有原来的系统自带的先删掉,因为很多库不全,自己需要到jdk官网下载包. 卸载CentOS自带的OpenJdk: [root@centos-lx /]# rpm -qa | gr ...

  2. Kali Linux 下安装配置MongoDB数据库 ubuntu 下安装配置MongoDB源码安装数据库

    Kali Linux 下安装配置MongoDB数据库   1.下载mongodb.tgz 压缩包: 2.解压到:tar -zxvf mongodb.tgz /usr/local/mongodb 3.创 ...

  3. Linux 下安装配置 JDK7

    Linux 下安装配置 JDK7 配置环境(debian 7) 自从从Oracle收购Sun近三年来,已经有很多变化.早在8月,甲骨文将“Operating System Distributor Li ...

  4. (转载)Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记

    Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记 Linux下配LMAP环境,花了我好几天的时间.之前没有配置过,网上的安装资料比较混乱,加上我用的版本问题,安装过程 ...

  5. linux 下安装配置jboss as7以及部署应用

    linux 下安装配置jboss as7以及部署应用 1.测试平台及软件 centos 5.4 jdk-7u5-linux-i586.rpm jboss-as-7.1.1.Final.zip jbos ...

  6. Linux下安装配置与使用MySQL数据库

    Linux下安装配置与使用MySQL数据库 在Linux下安装做开发时往往少不了要使用到MySQL数据库,下面就Linux系统为例讲解一下,如何安装MySQL数据库,如何启用/停.止MySQL服务,如 ...

  7. 在linux下安装配置rabbitMQ详细教程

    在linux下安装配置rabbitMQ详细教程 2017年12月20日 17:34:47 阅读数:7539 安装Erlang 由于RabbitMQ依赖Erlang, 所以需要先安装Erlang. Er ...

  8. Linux下安装配置MySQL5.7服务器

    Linux下安装配置MySQL服务器 一.安装环境 ============ OS:centos6.8 MySQL:mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz ...

  9. Linux下安装配置Jmeter5.1,并执行jmx文件

    Windows下的jmeter是GUI模式,可查看操作,但是GUI对性能的干扰比较大,所有一般压测会在Linux上运行. 下面是Linux下安装配置Jmeter5.1,并执行jmx文件的步骤, 一.安 ...

随机推荐

  1. java.lang.NoClassDefFoundError: org/I0Itec/zkclient/IZkStateListener

    spark streaming 读 kafka 报错 java.lang.NoClassDefFoundError: org/I0Itec/zkclient/IZkStateListener java ...

  2. Kafka消费者手动提交消息偏移

    生产者每次调用poll()方法时,它总是返回由生产者写入Kafka但还没有消费的消息,如果消费者一致处于运行状态,那么分区消息偏移量就没什么用处,但是如果消费者发生崩溃或者有新的消费者加入群组,就会触 ...

  3. 02-Dockerfile的基本使用

    1. FROM 作用:指定基础镜像 使用:FROM 镜像名 demo: FROM mysql FROM mysql:5.6 2. RUN 作用:指令是用来执行命令行命令的 使用: shell格式:RU ...

  4. 浅谈强连通分量(Tarjan)

    强连通分量\(\rm (Tarjan)\)             --作者:BiuBiu_Miku \(1.\)一些术语   · 无向图:指的是一张图里面所有的边都是双向的,好比两个人打电话 \(U ...

  5. 配合php伪协议利用文件包含漏洞

    文章来源: https://blog.csdn.net/zpy1998zpy/article/details/80598768?utm_medium=distribute.pc_relevant.no ...

  6. ADF 第六篇:Copy Data Activity详解

    在Azure 数据工程中,可以使用Copy Data 活动把数据从on-premises 或云中复制到其他存储中.Copy Data 活动必须在一个IR(Integration Runtime)上运行 ...

  7. EF中使用UnitOfWork

    前言 关于EF5中使用UnitWork,参见另一博文:  https://www.cnblogs.com/masonblog/p/9801162.html 每次提交数据库都会打开一个连接,造成结果是: ...

  8. [.NET] - Enhanced Strong Naming (加强版的强签名程序集) – 如何迁移原有的强命名程序集

    依据文档: https://msdn.microsoft.com/en-us/library/hh415055(v=vs.110).aspx 虽然文档上给出了看似完整的步骤,但是如果按照上面的步骤,结 ...

  9. 图解 Java 数据结构

    图解Java数据结构: 一.链表       Java ListNode     https://www.cnblogs.com/easyidea/p/13371863.html 二.栈       ...

  10. Java学习日报8.6

    <构建之法:现代软件工程>读后感 比起一般的教学类书籍,这本书更像是一本传记小说,作者邹欣以自己或者说一些典型的软件工程师为例子,详细介绍了一个软件工程师的工作内容,全书给我的感觉就是以一 ...