基础环境

操作系统: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. ZOJ3261-Connections in Galaxy War-(逆向并查集+离线处理)

    题意: 1.有n个星球,每个星球有一个编号(1-n)和一个能量值. 2.一开始将某些星球连通. 3.开战后有很多个操作,查询某个星球能找谁求救或者摧毁两颗星球之间的连通路径,使其不能连通.如果连通则可 ...

  2. HDU 6583 Typewriter(后缀自动机)

    Typewrite \[ Time Limit: 1500 ms\quad Memory Limit: 262144 kB \] 题意 给出一个字符串 \(s\),现在你需要构造出这个字符串,你每次可 ...

  3. webpack资源管理

    一.概况 ①webpack不仅可以打包JavaScript模块,甚至它把网页开发中的一切资源的都可以当作模块来打包处理 ②但是webpack本身不支持,它只是一个打包平台,其他资源,例如css.les ...

  4. vue单项数据流

    当父组件给子组件传递数据的时候,子组件只能读取,不能改写.因为如果子组件改变父组件传递过来的数据时会造成数据流难以理解.

  5. zabbix监控nginx,mysql,java

    zabbix 支持的主要监控方式(1)agent代理程序 在Agent监控方式下,zabbix-agent会主动收集本机的监控信息并通过TCP协议与zabbix-server传递信息.Agent 监控 ...

  6. TypeError: BlobBuilder is not a constructor

    var BlobBuilder = window.BlobBuilder || window.MozBlobBuilder || window.WebKitBlobBuilder || window. ...

  7. 在Visual Studio中直接编译Fluent的UDF(修正)

    原文见:http://blog.sina.com.cn/s/blog_14d64daa10102xkg4.html 主要是修正几个问题: 首先是头文件填入的顺序需要严格按照我前文给出的顺序填写,否则可 ...

  8. C复习---动态内存分配

    原型extern void *malloc(unsigned int num_bytes);头文件#include <stdlib.h>#include <malloc.h>函 ...

  9. 【Gamma】Scrum Meeting8

    目录 写在前面 进度情况 任务进度表 燃尽图 照片 写在前面 例会时间:6.6 22:30-22:45 例会地点:微信群语音通话 代码进度记录github在这里 进度情况 任务进度表 注:点击链接跳转 ...

  10. Leetcode: 43. 接雨水

    题目描述: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情 ...