基础环境

操作系统: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 双主双从异步复制环境搭建的更多相关文章

  1. RocketMQ学习笔记(16)----RocketMQ搭建双主双从(异步复制)集群

    1. 修改RocketMQ默认启动端口 由于只有两台机器,部署双主双从需要四个节点,所以只能修改rocketmq的默认启动端口,从官网下载rocketmq的source文件,解压后使用idea打开,全 ...

  2. Docker 部署 RocketMQ 双主双从模式( 版本v4.7.0)

    文章转载自:http://www.mydlq.club/article/96/ 系统环境: 系统版本:CentOS 7.8 RocketMQ 版本:4.7.0 Docker 版本:19.03.13 一 ...

  3. Centos6.9下RocketMQ3.4.6高可用集群部署记录(双主双从+Nameserver+Console)

    之前的文章已对RocketMQ做了详细介绍,这里就不再赘述了,下面是本人在测试和生产环境下RocketMQ3.4.6高可用集群的部署手册,在此分享下: 1) 基础环境 ip地址 主机名 角色 192. ...

  4. RocketMQ4.7.1双主双从集群搭建

    导读 上一集我们已经学会了SpringBoot整合RocketMQ点我直达,今天我们来搭建双主双从高性能MQ服务集群. 简介 主从架构 Broker角色,Master提供读写,Slave只支持读,Co ...

  5. 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变

    [Mysql主从复制]解决的问题数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了.负载均衡:M ...

  6. 高可用Mysql架构_Mycat集群部署(HAProxy + 两台Mycat+Mysql双主双从)

    既然大家都知道了Mysql分布式在大型网站架构中的作用,在这里就不再阐述.本片博客文章是基于我曾经搭建过的一个Mysql集群基础上实现的,实现过双主热备.读写分离.分库分表. 博客链接:http:// ...

  7. mysql搭建主从复制(一主一从,双主双从)

    主从复制原理 Mysql 中有一个binlog 二进制日志,这个日志会记录下所有修改了的SQL 语句,从服务器把主服务器上的binlog二进制日志在指定的位置开始复制主服务器所进行修改的语句到从服务器 ...

  8. Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从)

    1. 主从复制解释   将主数据库的增删改查等操作记录到二进制日志文件中,从库接收主库日志文件,根据最后一次更新的起始位置,同步复制到从数据库中,使得主从数据库保持一致. 2. 主从复制的作用 高可用 ...

  9. 在Docker下进行MyCAT管理双主双从MySQL集群

    前言 在Docker下双主双从MySQL集群模拟 https://www.cnblogs.com/yumq/p/14259964.html 本文实验配置文件 Docker拉取MyCAT镜像 如果没启动 ...

随机推荐

  1. git crate patch and check&apply patch(八)

    root@vmuer-VirtualBox:/opt/myProject# git format-patch master0001-add-c.c.patch root@vmuer-VirtualBo ...

  2. 使用blessed-contrib 开发专业的终端dashboard

    blessed-contrib 是blessed 的一个扩展包,以前有说过blessed(一个方便的开发cli 的工具) 我们使用blessed-contrib可以开发专业的终端dashboard 功 ...

  3. 在IDEA编辑器中建立Spring Cloud的子项目包(构建微服务)

    本文介绍在IDEA编辑器中建立Spring Cloud的子项目包 总共分为5个包: 外层使用maven quickstart建立,子modules直接选择了springboot

  4. 将两个各有n个元素的有序表归并成一个有序表,其最多的比较次数

    最多的比较次数是当两个有序表的数据刚好是插空顺序的时候,比如:第一个序列是1,3,5,第二个序列是2,4,6,把第二个序列插入到第一个序列中,先把第二个序列中的第一个元素2和第一个序列依次比较,需要比 ...

  5. [Beta]Scrum Meeting#8

    github 本次会议项目由PM召开,时间为5月13日晚上10点30分 时长10分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客整理文档 撰写博客整理文档 swoip 为适应新功能调整布局 ...

  6. python 获取天气信息,并绘制曲线

    import urllib.request import gzip import json print('------天气查询------') def get_weather_data() : cit ...

  7. Vscode 修改主题颜色

    首先向大家演示如何使用VSCode自带的颜色主题:依次点击左上角的文件-首选项-颜色主题,出现如下的主题选取界面.

  8. Python开源项目Top30

    原文地址:https://www.cnblogs.com/stoker/p/9101825.html No 1:Home-assistant (v0.6+) 基于Python 3的开源家庭自动化平台[ ...

  9. Flutter Plugin开发简单示例

    新建Plugin项目: flutter create --template=plugin -i swift -a javahello lib/hello.dart: 插件包的Dart API. and ...

  10. Java学习-059-Jsoup爬虫获取中国所有的三级行政区划数据(四),生成相应的 JSON 数据并输出

    还是直接上马,对应的源码如下所示: 生成的三级行政区划部分 JSON 数据如下所示: