Rocketmq集群再搭建

注意上面这个官方架构是 主从模式,还无法做到高可用,因为master节点宕机,从节点没法变成主节点,需要人工重启,够用了。

1. 先准备1台虚拟机,装好1台再克隆2台  

根据上面的图,3台机器中有一台是只运行nameserver 不运行broker

2.下载安装jdk1.8和rocketmq ,记得关闭防火墙

 下载linux 64位 jdk1.8+(自行百度资源) 

 下载 | RocketMQ (apache.org)

## 解压
tar -zxvf jdk-8u144-linux-x64.tar.gz


## 删除安装包
rm -rf jdk-8u144-linux-x64.tar.gz

## 解压
unzip rocketmq-all-4.9.4-bin-release.zip


## 删除安装包
rm -rf rocketmq-all-4.9.4-bin-release.zip

##安装jdk环境变量

vi /etc/profile

```

export JAVA_HOME=/usr/local/jdk/jdk1.8.0_301  #jdk安装目录
export JRE_HOME=/usr/local/jdk/jdk1.8.0_301/jre
export ROCKETMQ_HOME=/usr/local/rocketmq/rocketmq-all-4.9.4-bin-release
 
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$ROCKETMQ_HOME/bin:$PATH

```

source  /etc/profile

测试学习需要,修改jvm内存配置,默认的实在太大了

vi runserver.sh

```

 -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m

```

vi runbroker.sh

```

-server -Xms512m -Xmx512m -Xmn256m

```

## 1.进入bin目录执行,-n 表示在那台机器启动nameserver ,将来是给broker 实例注册使用

nohup sh mqnamesrv -n  <ip:9876> &

## 2. 查看运行日志,具体日志目录根据自己实际去写

tail -f ~/logs/rocketmqlogs/namesrv.log

或者cat nohup.out

或者jps

## 3. 进入bin目录执行localhost 是安装mq的虚拟机ip ,将broker 注册到nameserver
 
nohup sh mqbroker -n localhost:9876 &

3.单机测试

# 配置自动创建Topic   -->/conf/broker.conf

cd /usr/local/rocketmq/rocketmq-all-4.9.4-bin-release/conf

### 配置环境变量,3台都要配置,IP注意修改

vim /etc/profile

```

export NAMESRV_ADDR=192.168.208.190:9876 #(你的虚拟机ip,端口号一样)

```

source /etc/profile

# 测试发送消息,
sh tools.sh org.apache.rocketmq.example.quickstart.Producer


# 测试消费消息
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
 
# 关闭namesrv
sh mqshutdown namesrv


# 关闭broker
sh mqshutdown broker

接下来,就可以快速创建 剩下2个节点

###克隆记得修改ip

vi /etc/sysconfig/network-scripts/ifcfg-ens33

```

IPADDR="192.168.208.192"

```

service network restart

### 启动3个节点,在装好第一个节点的文件跨节点拷贝,有密码检验yes  --> 密码

scp -rp /usr/local/rocketmq/  192.168.208.191:/usr/local/rocketmq/

scp -rp /usr/local/rocketmq/  192.168.208.192:/usr/local/rocketmq/

1. 后续。。。。配置集群配置文件

broker-a.properties 

# 所属集群名称
brokerClusterName=DefaultCluster

# broker名称
brokerName=broker-a

# broker所在服务器的ip
brokerIP1=192.168.208.191

# 0-master  大于0-salve
brokerId=0

# 临时文件保留48小时
fileReservedTime=48

# broker的角色是master,而且是异步复制
brokerRole=ASYNC_MASTER

# 使用异步刷盘
flushDiskType=ASYNC_FLUSH

# 注册中心列表(nameserver)
namesrvAddr=192.168.208.190:9876;192.168.208.191:9876;192.168.208.192:9876

# 是否开启Broker自动创建topic (建议线上关闭-false)
autoCreateTopicEnable=true

# 是否开启Broker自动创建订阅组 (建议线上关闭-false)
autoCreateSubscriptionGroup=true

# 如果在发送消息时,自动创建topic,默认创建的队列数为4个(不推荐使用自动创建topic)
defaultTopicQueueNums=4

# broker对外服务的监听端口
listenPort=10911

#####存储配置

abortFile=/usr/local/rocketmq/store/abort

# 消息存储
storePathRootDir=/usr/local/rocketmq/store

# 提交日志
storePathCommitLog=/usr/local/rocketmq/store/commitlog

# 消费队列
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue

# 消息索引
storePathIndex=/usr/local/rocketmq/store/index

# checkpoint文件
storeCheckpoint=/usr/local/rocketmq/store/checkpoint

# 限制消息大小
maxMessageSize=65536

# commitLog每个文件默认1g
mapedFileSizeCommitLog=10737411824

# consume每个文件默认存30w条,根据业务和机器的配置调整
mapedFileSizeConsumeQueue=300000

broker-b-s.properties 


brokerClusterName=DefaultCluster
brokerName=broker-b
# 0-master 大于0-slave
brokerId=1
brokerIP1=192.168.208.191
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

namesrvAddr=192.168.208.190:9876;192.168.208.191:9876;192.168.208.192:9876
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
defaultTopicQueueNums=4

listenPort=11011

#####存储配置

abortFile=/usr/local/rocketmq/store-salve/abort
storePathRootDir=/usr/local/rocketmq/store-slave
storePathCommitLog=/usr/local/rocketmq/store-slave/commitlog
storePathConsumeQueue=/usr/local/rocketmq/store-salve/consumequeue
storePathIndex=/usr/local/rocketmq/store-slave/index
storeCheckpoint=/usr/local/rocketmq/store-slave/checkpoint

maxMessageSize=65536
mapedFileSizeCommitLog=10737411824
mapedFileSizeConsumeQueue=300000

broker-b.properties 

brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=0
brokerIP1=192.168.208.192
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH

namesrvAddr=192.168.208.190:9876;192.168.208.191:9876;192.168.208.192:9876
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
defaultTopicQueueNums=4


listenPort=10911

#####存储配置

abortFile=/usr/local/rocketmq/store/abort

storePathRootDir=/usr/local/rocketmq/store
storePathCommitLog=/usr/local/rocketmq/store/commitlog
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
storePathIndex=/usr/local/rocketmq/store/index
storeCheckpoint=/usr/local/rocketmq/store/checkpoint

maxMessageSize=65536
mapedFileSizeCommitLog=10737411824
mapedFileSizeConsumeQueue=300000

broker-a-s.properties  

brokerClusterName=DefaultCluster
brokerName=broker-a
brokerIP1=192.168.208.192
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

namesrvAddr=192.168.208.190:9876;192.168.208.191:9876;192.168.208.192:9876
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
defaultTopicQueueNums=4

listenPort=11011

#####存储配置

abortFile=/usr/local/rocketmq/store-salve/abort
storePathRootDir=/usr/local/rocketmq/store-slave
storePathCommitLog=/usr/local/rocketmq/store-slave/commitlog
storePathConsumeQueue=/usr/local/rocketmq/store-salve/consumequeue
storePathIndex=/usr/local/rocketmq/store-slave/index
storeCheckpoint=/usr/local/rocketmq/store-slave/checkpoint

maxMessageSize=65536
mapedFileSizeCommitLog=10737411824
mapedFileSizeConsumeQueue=300000

2.启动集群

# 在bin目录执行,如果配置rocketmq的环境变量,-c 直接配置文件名称

nohup sh mqnamesrv  -n 192.169.208.191:9876 &

nohup sh mqbroker -c ../conf/2m-2s-async/broker-a.properties &

nohup sh mqbroker -c ../conf/2m-2s-async/broker-b-s.properties &

jps

3.修改之前的nameserver的地址环境变量

### 配置环境变量,3台都要配置,IP注意修改,记得加单引号 ‘’

vim /etc/profile

```

export NAMESRV_ADDR='192.168.208.190:9876;192.168.208.191:9876;192.168.208.192:9876'

```

source /etc/profile

4验证主从,192.168.208.191发信息,并异步复制信息到192.168.208.192,然后消费消息

结束!!!

  • 16
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值