RocketMQ 4.5.1 双主双从异步复制环境搭建
基础环境
操作系统:CentOS7
实例:192.168.63.129,192.168.63.130,192.168.63.131,192.168.63.132
Java:jdk-8u191-linux-x64.tar.gz
安装JDK
先把系统里面自带的卸载掉

[root@localhost soft]# rpm -qa|grep java
python-javapackages-3.4.-.el7.noarch
java-1.8.-openjdk-1.8.0.181-.b13.el7.x86_64
java-1.8.-openjdk-headless-1.8.0.181-.b13.el7.x86_64
tzdata-java-2018e-.el7.noarch
javapackages-tools-3.4.-.el7.noarch
[root@localhost soft]# rpm -e java-1.8.-openjdk-1.8.0.181-.b13.el7.x86_64 --nodeps
[root@localhost soft]# rpm -e java-1.8.-openjdk-headless-1.8.0.181-.b13.el7.x86_64 --nodeps
[root@localhost soft]#
进入你JDK安装包所在的目录,然后安装JDK
# 创建一个目录存放
[root@localhost soft]# mkdir /usr/local/java
# 解压缩到这个目录
[root@localhost soft]# tar -xvf jdk-8u191-linux-x64.tar.gz -C /usr/local/java/
解压之后进入该目录可以看到

下面配置环境变量
[root@localhost java]# vim /etc/profile
加入以下内容
# java
export JAVA_HOME=/usr/local/java/jdk1..0_191
export JRE_HOME=/usr/local/java/jdk1..0_191/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
如下所示

刷新并验证
[root@localhost java]# source /etc/profile
[root@localhost java]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) -Bit Server VM (build 25.191-b12, mixed mode)
[root@localhost java]#
安装RocketMQ

去下载 http://rocketmq.apache.org/
然后上传到服务器,我上传到 /soft文件夹下面。然后解压
# 解压
[root@localhost soft]# unzip rocketmq-all-4.5.-bin-release.zip -d /usr/local/
# 进入解压目录
[root@localhost soft]# cd /usr/local/
[root@localhost local]# ll
total
drwxr-xr-x. root root Apr bin
drwxr-xr-x. root root Apr etc
drwxr-xr-x. root root Apr games
drwxr-xr-x. root root Apr include
drwxr-xr-x. root root May : java
drwxr-xr-x. root root Apr lib
drwxr-xr-x. root root Apr lib64
drwxr-xr-x. root root Apr libexec
drwx------. root root Mar : rocketmq-all-4.5.-bin-release
drwxr-xr-x. root root Apr sbin
drwxr-xr-x. root root May : share
drwxr-xr-x. root root Apr src
# 改个名字
[root@localhost local]# mv rocketmq-all-4.5.1-bin-release/ rocketmq
[root@localhost local]# ll
total
drwxr-xr-x. root root Apr bin
drwxr-xr-x. root root Apr etc
drwxr-xr-x. root root Apr games
drwxr-xr-x. root root Apr include
drwxr-xr-x. root root May : java
drwxr-xr-x. root root Apr lib
drwxr-xr-x. root root Apr lib64
drwxr-xr-x. root root Apr libexec
drwx------. root root Mar : rocketmq
drwxr-xr-x. root root Apr sbin
drwxr-xr-x. root root May : share
drwxr-xr-x. root root Apr src
进入配置文件目录,修改配置文件(四台机器修改的配置文件不一样,注意名称)
[root@localhost local]# cd rocketmq/conf/2m-2s-async/
# 129节点
[root@localhost 2m-2s-async]# vim broker-a.properties
# 130节点
[root@localhost 2m-2s-async]# vim broker-a-s.properties
# 131节点
[root@localhost 2m-2s-async]# vim broker-b.properties
# 132节点
[root@localhost 2m-2s-async]# vim broker-b-s.properties
加入如下内容(四台机器加入内容一样,但是修改的文件不一样)
listenPort=
namesrvAddr=192.168.63.129:;192.168.63.130:;192.168.63.131:;192.168.63.132:
mapedFileSizeCommitLog=
storePathRootDir=/usr/local/rocketmq/store
storePathCommitLog=/usr/local/rocketmq/store/commitlog
storePathConsumerQueue=/usr/local/rocketmq/store/consumequeue
storePathIndex=/usr/local/rocketmq/store/index
如图:

然后新建store相关目录(四台机器一样)
[root@localhost 2m-2s-async]# mkdir /usr/local/rocketmq/store
[root@localhost 2m-2s-async]# mkdir /usr/local/rocketmq/store/commitlog
[root@localhost 2m-2s-async]# mkdir /usr/local/rocketmq/store/consumequeue
[root@localhost 2m-2s-async]# mkdir /usr/local/rocketmq/store/index
开启防火墙端口
[root@localhost 2m-2s-async]# firewall-cmd --zone=public --add-port=/tcp --permanent
success
[root@localhost 2m-2s-async]# firewall-cmd --zone=public --add-port=/tcp --permanent
success
[root@localhost 2m-2s-async]# systemctl restart firewalld
进入bin目录,准备启动nameserver,启动成功。
[root@localhost 2m-2s-async]# cd /usr/local/rocketmq/bin/
[root@localhost bin]# ./mqnamesrv &
[]
[root@localhost bin]# Java HotSpot(TM) -Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) -Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON [root@localhost bin]#
下面启动broker
[root@localhost bin]# ./mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-a.properties &
[]
[root@localhost bin]# Java HotSpot(TM) -Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, , ) failed; error='Cannot allocate memory' (errno=)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map bytes for committing reserved memory.
# An error report file with more information is saved as:
# /usr/local/rocketmq/bin/hs_err_pid59738.log []+ Exit ./mqbroker
报错了,内存不足。毕竟测试搭建,只有1G内存。修改runbroker.sh
[root@localhost bin]# vim runbroker.sh
修改这里

改为 -Xms256m -Xmx256m -Xmn128m
保存关闭,重启。

#
[root@localhost bin]# ./mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-a.properties &
[]
[] Exit ./mqbroker
[root@localhost bin]# The broker[broker-a, 192.168.63.129:] boot success. serializeType=JSON and name server is 192.168.63.129:;192.168.63.130:;192.168.63.131:;192.168.63.132: #
[root@localhost bin]# ./mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-a-s.properties &
[]
[] Exit ./mqbroker
[root@localhost bin]# The broker[broker-a, 192.168.63.130:] boot success. serializeType=JSON and name server is 192.168.63.129:;192.168.63.130:;192.168.63.131:;192.168.63.132: #
[root@localhost bin]# ./mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-b.properties &
[]
[] Exit ./mqbroker
[root@localhost bin]# The broker[broker-b, 192.168.63.131:] boot success. serializeType=JSON and name server is 192.168.63.129:;192.168.63.130:;192.168.63.131:;192.168.63.132: #
[root@localhost bin]# ./mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-b-s.properties &
[]
[] Exit ./mqbroker
[root@localhost bin]# The broker[broker-b, 192.168.63.132:] boot success. serializeType=JSON and name server is 192.168.63.129:;192.168.63.130:;192.168.63.131:;192.168.63.132:
全部启动成功后,安装个管控台。
管控台
这里需要四台服务器开启10909端口。
[root@localhost bin]# firewall-cmd --zone=public --add-port=/tcp --permanent
success
[root@localhost bin]# systemctl restart firewalld
=====
https://github.com/apache/rocketmq-externals
下载好后,进入rocketmq-console目录执行打包命令
mvn clean package -Dmaven.test.skip=true

进入target目录,执行命令启动。
java -jar rocketmq-console-ng-1.0..jar --rocketmq.config.namesrvAddr='192.168.63.129:9876;192.168.63.130:9876;192.168.63.131:9876;192.168.63.132:9876'
访问http://localhost:8080/#/cluster

关闭NameServer和Broker
[root@localhost bin]# ./mqshutdown namesrv
The mqnamesrv() is running...
Send shutdown request to mqnamesrv() OK
[root@localhost bin]# ./mqshutdown broker
The mqbroker() is running...
Send shutdown request to mqbroker() OK
[]- Exit ./mqnamesrv
RocketMQ 4.5.1 双主双从异步复制环境搭建的更多相关文章
- RocketMQ学习笔记(16)----RocketMQ搭建双主双从(异步复制)集群
1. 修改RocketMQ默认启动端口 由于只有两台机器,部署双主双从需要四个节点,所以只能修改rocketmq的默认启动端口,从官网下载rocketmq的source文件,解压后使用idea打开,全 ...
- Docker 部署 RocketMQ 双主双从模式( 版本v4.7.0)
文章转载自:http://www.mydlq.club/article/96/ 系统环境: 系统版本:CentOS 7.8 RocketMQ 版本:4.7.0 Docker 版本:19.03.13 一 ...
- Centos6.9下RocketMQ3.4.6高可用集群部署记录(双主双从+Nameserver+Console)
之前的文章已对RocketMQ做了详细介绍,这里就不再赘述了,下面是本人在测试和生产环境下RocketMQ3.4.6高可用集群的部署手册,在此分享下: 1) 基础环境 ip地址 主机名 角色 192. ...
- RocketMQ4.7.1双主双从集群搭建
导读 上一集我们已经学会了SpringBoot整合RocketMQ点我直达,今天我们来搭建双主双从高性能MQ服务集群. 简介 主从架构 Broker角色,Master提供读写,Slave只支持读,Co ...
- 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变
[Mysql主从复制]解决的问题数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了.负载均衡:M ...
- 高可用Mysql架构_Mycat集群部署(HAProxy + 两台Mycat+Mysql双主双从)
既然大家都知道了Mysql分布式在大型网站架构中的作用,在这里就不再阐述.本片博客文章是基于我曾经搭建过的一个Mysql集群基础上实现的,实现过双主热备.读写分离.分库分表. 博客链接:http:// ...
- mysql搭建主从复制(一主一从,双主双从)
主从复制原理 Mysql 中有一个binlog 二进制日志,这个日志会记录下所有修改了的SQL 语句,从服务器把主服务器上的binlog二进制日志在指定的位置开始复制主服务器所进行修改的语句到从服务器 ...
- Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从)
1. 主从复制解释 将主数据库的增删改查等操作记录到二进制日志文件中,从库接收主库日志文件,根据最后一次更新的起始位置,同步复制到从数据库中,使得主从数据库保持一致. 2. 主从复制的作用 高可用 ...
- 在Docker下进行MyCAT管理双主双从MySQL集群
前言 在Docker下双主双从MySQL集群模拟 https://www.cnblogs.com/yumq/p/14259964.html 本文实验配置文件 Docker拉取MyCAT镜像 如果没启动 ...
随机推荐
- Eclipse中将java类打成jar包形式运行
记录一次帮助小伙伴将java类打成jar包运行 1.创建java project项目 file > new > project > java project 随便起一个项目名称,fi ...
- WinDbg常用命令系列---!uniqstack
简介 这个!uniqstack扩展扩展显示的所有线程的堆栈的所有当前进程,不包括显示为具有重复项的堆栈中. 使用形式 !uniqstack [ -b | -v | -p ] [ -n ] 参数 -b将 ...
- [RN] React Native 封装选择弹出框(ios&android)
之前看到react-native-image-picker中自带了一个选择器,可以选择拍照还是图库,但我们的项目中有多处用到这个选择弹出框,所以就自己写了一下,最最重要的是ios和Android通用. ...
- robotframework 文档
http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#post-processing-outputs
- Python 元编程
1.为函数添加包装器 总是存在这样的场景,在一个函数执行前后需要做一些操作处理,常见于日志创建.权限认证或者性能分析等.但有一个问题存在,那就是被装饰的函数,其元信息会丢失,函数引用会指向装饰器的返回 ...
- PTES渗透测试执行标准
渗透测试注意事项: 1:测试一定要获得授权方才能进行,切勿进行恶意攻击 2:不要做傻事 3:在没有获得书面授权时,切勿攻击任何目标 4:考虑你的行为将会带来的后果 5:天网恢恢疏而不漏 渗透测试执行标 ...
- sourceforge文件下载过慢
sourceforge文件下载过慢,可以用下面网址镜像下载, http://sourceforge.mirrorservice.org 按搜索到的项目的英文字母依次查询,如http://sourcef ...
- js截取get参数乱码问题之解决
举个例子说一下: http://wwww.yctech.com/blog/post?id=1 像这样的话,通常通过如下代码直接截取不用做任何处理: function getQueryString(na ...
- PHP系列 | Thinkphp3.2 上传七牛 bad token 问题 [ layui.upload 图片/文件上传]
前端代码 <div class="logo_out" id="upload-logo"></div> JS代码 /** * 上传图片 * ...
- 累积分布函数(cumulative distribution function)
sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程,QQ:231469242) https://study.163.com/course/introduction.htm?courseId ...