您的位置:首页 > 其它

rocketMQ - v4.0.0 - incubating集群安装

2017-09-12 10:58 543 查看
**

[持续集成、自动化部署、弹性伸缩教程](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
4000
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
a9f5
;


[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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息