Linux环境快速搭建RocketMQ双Master模式

RocketMQ的集群部署方式有多种,其中包括单个Master、多个Master、多Master多Slave模式(异步复制)以及多Master多Slave模式(同步双写)。本次以多Master集群模式为例搭建一个双机Master的RocketMQ集群环境。

1、双机Master服务器环境

序号    ip      用户名    密码        角色            模式

(1)   10.43.98.34  root          nameServer1,brokerServer1    Master1

(2)   10.43.98.38  root          nameServer1,brokerServer1    Master2

2、Host添加信息

对两台机器同时执行vi  /etc/hosts  输入如下图所示的信息

这里我们是将nameServer和broker部署在同一台机器上的,同样也可以分开部署。

重启网卡:service network restart

相互ping一下,在34机器上ping 10.43.98.38   ping  rocketmq-nameserver2   ping  rocketmq-master2 。 37机器上也一样。

然后就是将RocketMQ的压缩包进行解压,解压到/opt目录下,并创建软连接ln -s RocketMQ rocketmq

3、创建数据存储路径(两台机器都要创建)

我是在/tmp目录下来存储产生的数据的,因此进入到/tmp目录下

mkdir rocketmq

mkdir rocketmq/data

mkdir rocketmq/data/commitlog

mkdir rocketmq/data/consumerqueue

mkdir rocketmq/data/index

4、修改RocketMQ的配置文件:broker-a.properties  broker-b.properties

配置文件位置:cd /opt/RocketMQ/conf/2m-noslave/

因为有两个master主节点,所以主节点1启动依赖broker-a.properties,主节点2启动依赖broker-b.properties,如果是三个Master,那么还会有一个broker-c.properties,以此类推。

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a|broker-b
#0 表示 Master, >0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 0点
deleteWhen=00
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/opt/rocketmq/data
#commitLog 存储路径
storePathCommitLog=/opt/rocketmq/data/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/opt/rocketmq/data/consumequeue
#消息索引存储路径
storePathIndex=/opt/rocketmq/data/index
#checkpoint 文件存储路径
storeCheckpoint=/opt/rocketmq/data/checkpoint
#abort 文件存储路径
abortFile=/opt/rocketmq/data/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

brokerId=0表示是master,大于0则表示是slave;

另外BrokerName=broker-a要对应;在34机器上是broker-a,在第二台机器37上则是broker-b。分别在34和37上修改broker-a.properties和broker-b.properties。

namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876。这个要和之前配置的名称相互对应。

对外服务的通信端口是9876。

文件默认大小是1G,当写满后再自动创建。#commitLog每个文件的大小默认1G

5、修改日志配置文件

在创建的软连接文件夹rocketmq下创建一个logs目录 mkdir /opt/rocketmq/logs

然后执行cd /opt/rocketmq/conf && sed -i ‘s#${user.home}#/opt/rocketmq#g‘ *.xml进行日志文件的替换,sed是linux的替换命令。两台机器同样操作。

6、修改启动脚本参数(JVM参数的调优)

因为我们之前将nameServer和broker放在了同一台机器上,所以需要分别对nameServer和broker进行jvm的性能调优。生产环境默认即可不要修改。

1)broker的调优

vi /opt/rocketmq/bin/runbroker.sh

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m - XX:PermSize=128m -XX:MaxPermSize=320m"

2)nameserver的调优

vi /opt/rocketmq/bin/runserver.sh

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m - XX:PermSize=128m -XX:MaxPermSize=320m"

7、启动两台机器的NameServer:先启动两台机器的NameServer,再启动两台机器的Borker,关机的时候顺序相反,先关闭两台机器的Broker,再关闭两台机器的Nameserver。

# cd /opt/rocketmq/bin

# nohup sh mqnamesrv &

上面这条命令nohup是起一个守护线程。

mqadnin是管理员命令,mqfiltersrv是rocketmq的单独组件,mqnamesrv是NameServer,mqbroker是Broker。

jps 查看进程

# tail -f -n 500 /opt/rocketmq/logs/rocketmqlogs/broker.log

# tail -f -n 500 /opt/rocketmq/logs/rocketmqlogs/namesrv.log

查看状态。

8、启动BrokerServer A 10.43.98.34和BrokerServer B 10.43.98.37

BrokerServer A 10.43.98.34

nohup sh mqbroker -c /opt/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &

netstat -ntlp

jps

tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log

tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log

BrokerServer B 10.43.98.37

nohup sh mqbroker -c /opt/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &

netstat -ntlp

jps

tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log

tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log

时间: 2024-10-14 00:02:20

Linux环境快速搭建RocketMQ双Master模式的相关文章

Linux下快速搭建php开发环境

php开发环境快速搭建 一.Linux下快速搭建php开发环境 1.安装XAMPP for Linux XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包,使用XAMPP可快速搭建PHP开发环境.下载链接:https://www.apachefriends.org/download.html  进入下载界面选择XAMPP for Linux下载 启动终端输入命令  cd /下载xampp保存的路径.我的保存路径是:/home/coderose/下载.更改安装程

Linux下快速搭建ntp时间同步服务器

背景: 服务器多了,时间是否一致以及是否准备就显得格外重要,虽然这个问题总是被忽略,但是统一时间是很有必要的,因为时间问题导致服务出现问题也是司空见惯,本文简单介绍一下ntp的快速搭建和使用. 1.  安装ntp yum -y install ntp(直接yum安装即可) 2.  修改ntp.conf的配置 1)vim /etc/ntp.conf ①   配置方法一:只允许192.168.100.0网段的客户机进行时间同步 在restrict default kod nomodify notra

通过KeepAlived搭建MySQL双主模式的高可用集群系统

企业级MySQL集群具备高可用.可扩展.易管理.低成本的特点.下面将介绍企业环境中经常应用的一个解决方案,即MySQL的双主互备架构,主要设计思路是通过MySQL Replication技术将两台MySQL Server互相将对方作为自己的Master,自己又同时作为对方的Slave来进行复制.这样就实现了高可用构架中的数据同步功能,同时,将采用KeepAlived来实现Mysql的自动failover.在这个构架中,虽然两台MySQL Server互为主从,但同一时刻只有一个MySQL Ser

Ubuntu Linux下快速搭建Samba服务

引用:http://www.linuxidc.com/Linux/2016-03/129195.htm Samba服务对于从事Linux开发从业人员来说并不陌生,现在也有Windows版本了,当我们在开发Linux驱动或者应用的时候,一般都输需要个Linux开发环境.对于大公司来说有个服务器可供程序员们公共使用,但对于小公司来说一般是在虚拟机里转个Linux开发环境,也很少用实体机来装Linux的,当然也有例外.这是时候往往涉及到Windows和Linux之间文件交互的问题,我现在用的最多的就是

linux环境下搭建MySQL数据库的双击热备

准备服务器 由于Mysql不同版本之间的(二进制日志)binlog格式可能会不太一样,因此最好的搭配组合是主(Master)服务器的Mysql版本和从(Slave)服务器版本相同或者更低,主服务器的版本肯定不能高于从服务器版本.本次我用于测试的两台服务器版本都是Mysql-5.5.17. Mysql 建立主-从服务器双机热备配置步骤 2.1环境描述A服务器(主服务器Master):59.151.15.36B服务器(从服务器Slave):218.206.70.146主从服务器的Mysql版本皆为5

测试环境搭建和部署(在Linux环境下搭建jdk+Tomcat+mysql环境和项目包的部署)

1.Linux环境(我搭建的是64位centos版本的linux系统) 1.下载并安装一个VMware Workstation虚拟机,是搭建Linux系统的平台.      2.下载一个centos安装包. 3.打开VMware Workstation,新建一个虚拟机,根据提示安装步骤,导入安装包,设置用户名和密码(此处设置的是普通账户,但密码和根账号root共用),其他的步骤全部点击下一步到最后,然后 静静等安装成功. 4.安装完成后,输入密码进入图形化界面,点击右键选择Open in Ter

maven环境快速搭建(转)

最近,开发中要用到maven,所以对maven进行了简单的学习.因为有个maven高手在身边,所以,很快就上手了,我这里算是自我总结吧.关于maven是什么东东,请参考其它文章. ----------------准备工作------------- Jdk  1.6 java开发环境. Eclipse IDE 一个. Maven 3.1.1 ----//快速搭建步骤 第一步:配置maven环境 将下载文件解压,然后设置maven环境 如果你配置过jdk的话,这里对你应该不难.如我的maven环境为

linux环境中搭建网站并进行数据库连接

注:所有内容都是妹纸我亲自搭建成功运行,如果有问题,欢迎发邮件来交流. [email protected](此QQ只用来收邮件,一般情况下是不会登陆的,所有有问题可以发邮件哦~我会回复的) 在我的上一篇文章里面,已经告诉亲们怎么搭建一套完整的 Tomcat+mysql+jDK环境,这篇文章着重讲如何发布war包,搭建一个测试环境.下面一个一个步骤来. [发布测试网站:war包] 1.首先要普及一点,我们一般发布java工程里面的war包,要发布是直接上传到tomcat 包里面的webapps文件

在Linux环境下搭建Tomcat+mysql+jdk环境

注:所有内容都是妹纸我亲自搭建成功运行,如果有问题,欢迎发邮件来交流. [email protected](此QQ只用来收邮件,一般情况下是不会登陆的,所有有问题可以发邮件哦~我会回复的) 按照下面的步骤一步一步来.   [Linux环境] 1.下载并安装一个VMware workstation, 这个是虚拟机的平台,后面要在里面搭建Linux系统. 2.下载一个centos安装包,linux版本有多种,比如说redhat.ubuntu.deepin.BT3,个人比较习惯使用centos,这里下