rocketMQ - v4.0.0 - incubating集群安装

** [持续集成、自动化部署、弹性伸缩教程](http://edu.csdn.net/course/detail/6452) http://edu.csdn.net/course/detail/6452 ———————————————————————— ** rocketMQ - release-4.0.0-incubating安装教程

安装 rocketMQ - release-4.0.0-incubating

rocketMQ下载URL:https://github.com/apache/incubator-rocketmq

(使用 apache-rocketmq-all.tar.gz 。注意,rocketMQ需要自己下载源码进行mavne编译)

一共需要6台服务器(NameServer、Master、Slave 各2台。Master 和 Slave是一对一的关系)

假设6台服务器IP设置如下:

NameServer 服务器IP(2台):192.168.188.130(hostname : rocket1)、192.168.188.131(hostname : rocket2)

Master 服务器IP(2台):192.168.188.132(hostname : rocket3)、192.168.188.133(hostname : rocket4)

Slave 服务器IP(2台):192.168.188.134(hostname : rocket5)、192.168.188.135(hostname : rocket6)

 

参考:

http://my.oschina.net/firxiao/blog/314834

http://www.myexception.cn/program/1670110.html

—————————————————————————————————- 我是传说中的分割线 —————————————————————————————————-

 

依赖项目:java ( 假设你已经安装好了java 。查看java是否已安装好:java -version )

注意:rocketMQ - release-4.0.0-incubating需要的jdk版本必须不低于 1.7.x

 

—————————————————————————————————- 我是传说中的分割线 —————————————————————————————————-

 

rocketMQ默认使用3个端口:9876 、10911、10912。如果防火墙没有关闭的话,那么防火墙就必须开放 9876 端口 、 10911 端口 、 10912 端口

name server 默认使用 9876 端口,master 和 slave 默认使用 10911 端口 、 10912 端口

 

开通防火墙端口命令(仅限 centos 6.x 以及之前版本):

/sbin/iptables -I INPUT -p tcp --dport 9876 -j ACCEPT

/sbin/iptables -I INPUT -p tcp --dport 10911 -j ACCEPT

/sbin/iptables -I INPUT -p tcp --dport 10912 -j ACCEPT

service iptables save

service iptables restart

 

—————————————————————————————————- 我是传说中的分割线 —————————————————————————————————-

 

配置 /etc/hosts 文件

以下操作需要分别在 6台 机子上都执行一遍。

[root@rocket1 ~]# hostname; ( 查看机器的主机名:rocket1 )

[root@rocket1 ~]# vi /ect/hosts;

在 /ect/hosts 文件末尾增加 主机名 和 127.0.0.1 的映射

127.0.0.1   rocket1

保存并退出。其它几台机器也都要执行此操作。.

注意:各台机子映射的是自己的主机名(例如:在 192.168.188.131 机子上,映射的是:127.0.0.1   rocket2)

 

修改rocketMQ的默认配置,并执行优化脚本os.sh

以下操作需要分别在 6台 机子上都执行一遍。 注意:所有的机子都执行相同的操作即可。

一、上传 apache-rocketmq-all.tar.gz 到/opt/rocketmq文件夹中

二、使用tar zxvf apache-rocketmq-all.tar.gz 命令解压 apache-rocketmq-all.tar.gz 文件 ( rocketMQ最终位置:/opt/rocketmq/ )

[root@rocket1 ~]# cd /opt/rocketmq/bin;

[root@rocket1 bin]# ll;

修改runbroker.sh文件中的jvm参数(如果有需要的话)

-server -Xms8g -Xmx8g -Xmn4g

修改为:

-server -Xms4g -Xmx4g -Xmn2g

——————————————————————————————————–

-XX:MaxDirectMemorySize=15g

修改为

-XX:MaxDirectMemorySize=1g

修改的目的主要是为了节省内存资源。如果不需要节省内存资源,就无需修改

[root@rocket1 bin]# sh ./os.sh; ( 修改linux的内核参数。PS:结合deadline的电梯IO算法, 效率更高一点 )

 

安装rocketMQ

以下操作需要分别在 6台 机子上都执行一遍。 注意:所有的机子都执行相同的操作即可。

三、配置环境变量

在 /etc/profile 文件最后添加:

export ROCKETMQ_HOME=/opt/rocketmq

export PATH= PATH: ROCKETMQ_HOME/bin

# rocketMQ的 name server集群 的所有IP

export NAMESRV_ADDR="192.168.188.130:9876;192.168.188.131:9876"

添加完成后,执行  source /etc/profile  命令使修改生效

[root@rocket1 opt]# source /etc/profile;

[root@rocket1 opt]# cd /opt/rocketmq/bin;

[root@rocket1 bin]# chmod +x mqadmin mqbroker mqfiltersrv mqshutdown mqnamesrv ( 赋予 mqadmin mqbroker mqfiltersrv mqshutdown mqnamesrv 这5个文件执行权限 )

 

启动 rocketMQ(多 Master 多 Slave 模式,异步复制)

启动顺序:NameServer、Master、Slave

一、在  192.168.188.130、192.168.188.131  两台机器上执行启动 NameServer 的操作(两台各执行一遍,操作完全相同)

[root@rocket1 bin]# cd /opt/rocketmq/bin;
[root@rocket1 bin]# nohup ./mqnamesrv &   ( 注意不要忽略了 & )
[root@rocket1 bin]# jps        ( 也可以使用 jps -v 来查看详细的内容 )
4644 Jps
4579 NamesrvStartup

如果看到进程中存在 NamesrvStartup,就代表 NameServer 启动成功了

也可以通过  ps -ef | grep mqnamesrv 命令来查看

————————————————————————————————————————————————————————————————————————————————

 

二、在 192.168.188.132  机器上执行启动第 1 个 Master 的操作

 

[root@rocket3 bin]# cd /opt/rocketmq/bin;

[root@rocket3 bin]# nohup ./mqbroker -c ../conf/2m-2s-async/broker-a.properties &   (注意这里的 -a 。第 2 台 Master 就会是 -b )

 

如果没有在 /etc/profile 文件中配置 NameServer 变量,那么就需要使用下面的命令:

[root@rocket3 bin]# nohup ./mqbroker -n "192.168.188.130:9876;192.168.188.131:9876" -c ../conf/2m-2s-async/broker-a.properties &

在命令中使用 -n 参数来指定 NameServer 的 IP和端口 来启动 Master(broker)

 

[root@rocket3 bin]# jps        ( 也可以使用 jps -v 来查看详细的内容 )

4774 Jps
4718 BrokerStartup

如果看到进程中存在 BrokerStartup,就代表 Broker 启动成功了

也可以通过  ps -ef | grep mqbroker 命令来查看

 

备注: NameServer也可以不使用单独的机器,而是放在Master、Slave机器上也可以的 ( 一般不建议这么做 )

 

————————————————————————————————————————————————————————————————————————————————

 

三、在 192.168.188.133  机器上执行启动第 2 个 Master 的操作

 

[root@rocket4 bin]# cd /opt/rocketmq/bin;

[root@rocket4 bin]# nohup ./mqbroker -c ../conf/2m-2s-async/broker-b.properties &   (注意这里的 -b 。第 1 台 Master 就会是 -a )

 

如果没有在 /etc/profile 文件中配置 NameServer 变量,那么就需要使用下面的命令:

[root@rocket4 bin]# nohup ./mqbroker -n "192.168.188.130:9876;192.168.188.131:9876" -c ../conf/2m-2s-async/broker-b.properties &

在命令中使用 -n 参数来指定 NameServer 的 IP和端口 来启动 Master(broker)

 

[root@rocket4 bin]# jps        ( 也可以使用 jps -v 来查看详细的内容 )

4674 BrokerStartup
4718 Jps

如果看到进程中存在 BrokerStartup,就代表 Broker 启动成功了

也可以通过  ps -ef | grep mqbroker 命令来查看

 

————————————————————————————————————————————————————————————————————————————————

 

四、在 192.168.188.134  机器上执行启动第 1 个 Slave 的操作

 

[root@rocket5 bin]# cd /opt/rocketmq/bin;

[root@rocket5 bin]# nohup ./mqbroker -c ../conf/2m-2s-async/broker-a-s.properties &   (注意这里的-a-s。第 1 台 Slave < 对应第 1 台 Master > 就会是-a-s)

 

如果没有在 /etc/profile 文件中配置 NameServer 变量,那么就需要使用下面的命令:

[root@rocket5 bin]# ./mqbroker -n "192.168.188.130:9876;192.168.188.131:9876" -c ../conf/2m-2s-async/broker-a-s.properties &

在命令中使用 -n 参数来指定 NameServer 的 IP和端口 来启动 Slave(broker)

 

[root@rocket5 bin]# jps        ( 也可以使用 jps -v 来查看详细的内容 )

4850 BrokerStartup
4918 Jps

如果看到进程中存在 BrokerStartup,就代表 Broker 启动成功了

也可以通过  ps -ef | grep mqbroker 命令来查看

 

————————————————————————————————————————————————————————————————————————————————

 

五、在 192.168.188.135  机器上执行启动第 2 个 Slave 的操作

 

[root@rocket6 bin]# cd /opt/rocketmq/bin;

[root@rocket6 bin]# nohup ./mqbroker -c ../conf/2m-2s-async/broker-b-s.properties &   (注意这里的-b-s。第 2 台 Slave < 对应第 2 台 Master >就会是-b-s)

 

如果没有在 /etc/profile 文件中配置 NameServer 变量,那么就需要使用下面的命令:

[root@rocket6 bin]# ./mqbroker -n "192.168.188.130:9876;192.168.188.131:9876" -c ../conf/2m-2s-async/broker-b-s.properties &

在命令中使用 -n 参数来指定 NameServer 的 IP和端口 来启动 Slave(broker)

 

[root@rocket6 bin]# jps        ( 也可以使用 jps -v 来查看详细的内容 )

5875 BrokerStartup
5920 Jps

如果看到进程中存在 BrokerStartup,就代表 Broker 启动成功了

也可以通过  ps -ef | grep mqbroker 命令来查看

 

到此为止,rockeyMQ已经启动成功了

 

关闭rocketMQ

关闭顺序:Slave –> Master –> NameServer

一、关闭命令:
[root@rocket6 bin]# cd /opt/rocketmq/bin;

[root@rocket6 bin]# sh ./mqshutdown broker;   (用来关闭 Master、Slave);   
[root@rocket6 bin]# sh ./mqshutdown namesrv;   (用来关闭 NameServer)

PS:mqshutdown命令在 /opt/rocketmq/bin 目录下

 

二、注意:执行关闭操作后,需要等待一会儿,关闭操作会有一些延迟的

 

三、在 192.168.188.134、192.168.188.135  2台 Slave 机器上分别执行以下命令(先关第 1 个 Slave 或者 第 2 个 Slave 都是可以的 )

[root@rocket6 bin]# cd /opt/rocketmq/bin

[root@rocket6 bin]# ./mqshutdown broker

[root@rocket6 bin]# ps -ef| grep mqbroker;  ( 关闭操作可能会有一些延迟,所以需要稍微等一会儿 )

 

————————————————————————————————————————————————————————————————————————————————

 

四、等对应的 Slave 线程关闭后,就可以开始关闭 Master 了。关闭 Master 的操作和关闭 Slave 的操作完全相同。因此关闭 Master 请参考关闭 Slave 的操作

 

————————————————————————————————————————————————————————————————————————————————

 

五、等 Master 和 Slave 的线程都关闭以后,就可以开始关闭 NameServer 了。在 192.168.188.130、192.168.188.131  2台 NameServer 机器上分别执行以下命令(先关第 1 个 NameServer 或者 第 2 个 NameServer 都是可以的 )

[root@rocket1 bin]# cd /opt/rocketmq/bin;

[root@rocket1 bin]# ./mqshutdown namesrv;

[root@rocket1 bin]# ps -ef| grep namesrv;  ( 关闭操作可能会有一些延迟,所以需要稍微等一会儿 )

 

 

 

常用命令

 

cd /opt/rocketmq/bin;

nohup ./mqnamesrv &

ps -ef|grep mqnamesrv

 

cd /opt/rocketmq/bin;

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

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

ps -ef|grep mqbroker

 

cd /opt/rocketmq/bin;

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

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

ps -ef|grep mqbroker




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值