一、环境:

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. 2020-2021-1 20209307《Linux内核原理与分析》第五周作业

    一.理论知识 系统调用:操作系统为用户态进程与硬件设备进行交互提供的一组接口. 系统调用的三层皮:API(应用程序接口),中断向量system_call,中断服务程序sys_xyz 宏观上Linux操 ...

  2. [BUUOJ]刮开有奖reverse

    刮开有奖 这是一个赌博程序,快去赚钱吧!!!!!!!!!!!!!!!!!!!!!!!!!!!(在编辑框中的输入值,即为flag,提交即可) 注意:得到的 flag 请包上 flag{} 提交 1.查壳 ...

  3. Docker 笔记学习

    文章目录 概述 CentOS7 Docker 安装 启动 Docker 后台服务 镜像加速 Docker常用命令 如何创建一个镜像 存储和载入镜像 上传镜像 容器的基本操作 创建容器 终止容器 如何进 ...

  4. JMeter上传文件,并修改源码参数化Content-Disposition 的 filename

    一.JMeter上传文件 1.使用F12或抓包工具抓包对应接口 如下图为一个上传图片接口,抓包显示内容如下: 2.将抓包到的信息头内容填写到jmeter的HTTP信息头管理器 3.填写参数 由抓包的接 ...

  5. TypeError: filter() got an unexpected keyword argument 'XXX'

    Flask使用SQLAlchemy查询报如下错误: TypeError: filter() got an unexpected keyword argument 'XXX' 出错原因: 查询错误,应该 ...

  6. 3.自定义view-TextView变色

    1.效果 2.实现原理 自定义Textview,重写onDraw方法,将画布分成两部分,用不同颜色的画笔画 核心代码: @Override protected void onDraw(Canvas c ...

  7. Java数组的三种打印方式

    1.数组的输出的三种方式 一维数组: 定义一个数组 int[] array = {1,2,3,4,5}; (1)传统的for循环方式 for(int i=0;i<array.length;i++ ...

  8. spring的ioc容器生成的对象也是代理对象对吗

    一直以为spring的ioc容器生成的对象都是代理对象,其实这个是错误的.spring ioc默认的都是原生对象  只有通过aop增强的对象才是代理对象 有@Transactional  注解或者配置 ...

  9. 发起一个开源项目:基于 .NET 的博客引擎 fluss

    今天我们发起一个开源项目,它的名字叫 fluss,fluss 是 river 的德语. 百川归海,每一个博客就如一条河流,输入的是文字,流出的是知识,汇入的是知识的汪洋大海. 川流不息,fluss 是 ...

  10. SpringBoot进阶教程(六十九)ApplicationContextAware

    在某些特殊的情况下,Bean需要实现某个功能,但该功能必须借助于Spring容器才能实现,此时就必须让该Bean先获取Spring容器,然后借助于Spring容器实现该功能.为了让Bean获取它所在的 ...