RABBITMQ3.6.6集群方案

 

环境准备:至少三台虚拟主机,操作系统为Centos6.5 X64位,CPU至少1核,内存2G,磁盘10G以上,配置好网络yum源,关闭iptables,关闭seliunx

  • 安装Erlang环境

1,下载erlang源代码

wget http://erlang.org/download/otp_src_19.1.tar.gz 

2,安装依赖相关库文件

yum install ncurses ncurses-base ncurses-devel ncurses-libs ncurses-static ncurses-term ocaml-curses ocaml-curses-devel openssl-devel zlib-devel gcc gcc- c++  -y

3, 编译安装Erlang

tar zxf otp_src_19.1.tar.gz
cd otp_src_19.1
./configure --prefix=/opt/erlang/19.1 --with-ssl -enable-threads -enable-smmp-support -enable-kernel-poll --enable-hipe --without-javac
make && make install

4, 配置环境变量(/etc/profile.d/erlang.sh

ERLANG_HOME=/opt/erlang/19.1
PATH=$ERLANG_HOME/bin:$PATH
export ERLANG_HOME
export PATH

source /etc/profile.d/erlang.sh

5, 验证Erlang环境正确与否

执行命令:erl

  • 安装RabbitMQ3.6.6

三台虚拟主机同时安装

1, 下载RabbitMQ源代码

Wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-generic-unix-3.6.6.tar.xz #下载源码包

xz -d rabbitmq-server-generic-unix-3.6.6.tar.xz # 解压

tar xf rabbitmq-server-generic-unix-3.6.6.tar  #  tar解压

2, 启动、关闭rabbitmq-server

[root@node1 ]# cd /usr/local/src/rabbitmq_server-3.6.6/sbin

./rabbitmq-server -detached

./rabbitmq-plugins enable rabbitmq_management #开启插件管理页面 打开端口15672

./rabbitmqctl stop #关闭服务

3, 创建用户

./rabbitmqctl add_user admin password   # 创建admin 账号
./rabbitmqctl set_user_tags admin administrator  # 设置admin账号为管理员权限
./rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"  # 设置admin 权限为所有权限(write,read)
./rabbitmqctl list_user_permissions admin  # admin权限列表

4,WEB登陆

http://10.38.1.166:15672

  • 集群搭建
  1. 服务器hosts文件修改(vim /etc/hosts)
10.38.1.166      node1
10.38.1.177      node2
10.38.1.180      node3

2,  修改/etc/sysconfig/network

HOSTNAME=node1   #node1服务器
HOSTNAME=node2   #node2服务器
HOSTNAME=node3   #node3服务器

3, 设置 Erlang Cookie

Erlang Cookie 文件:/root/.erlang.cookie (注意编译安装的是这个文件)

[root@node1 ~]# chmod 777 /root/.erlang.cookie

[root@node1 ~]# scp -r /root/.erlang.cookie root@node2:/root/.erlang.cookie

[root@node1 ~]# scp -r /root/.erlang.cookie root@node3:/root/.erlang.cookie

[root@node1 ~]# chmod 400 /root/.erlang.cookie

[root@node1 ~]# chown rabbitmq.rabbitmq /root/.erlang.cookie


4, 设置好erlang.cookie之后,使用detached后台启动rabbitmq-server

启动: ./rabbitmq-server -detached

查看各节点状态:./rabbitmqctl cluster_status
 

5, 把node2、node3分别加入到集群node1中, rabbitmqctl stop_app ---仅关闭应用,节点不被关闭

  1. node2
./rabbitmqctl stop_app
./rabbitmqctl join_cluster --ram rabbit@node1
./rabbitmqctl start_app
  1. node3
./rabbitmqctl stop_app
./rabbitmqctl join_cluster --ram rabbit@node1
./rabbitmqctl start_app

6, 查看集群情况

./rabbitmqctl cluster_status
[{nodes,[{disc,[rabbit@node1]},{ram,[rabbit@node3,rabbit@node2]}]},
 {running_nodes,[rabbit@node3,rabbit@node2,rabbit@node1]},
 {cluster_name,<<"rabbit@node1">>},
 {partitions,[]},
 {alarms,[{rabbit@node3,[]},{rabbit@node2,[]},{rabbit@node1,[]}]}]
7,然后分别进入各个节点,查看集群情况
http://10.38.1.166:15672/#/  

http://10.38.1.177:15672/#/

http://10.38.1.180:15672/#/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RabbitMQ 提供了一种高可用性的集群解决方案,通过将多个 RabbitMQ 节点组成一个集群来实现。 在 RabbitMQ集群中,每个节点都是一个独立的 RabbitMQ 服务器,它们之间通过网络进行通信和数据同步。集群中的节点可以在同一台物理服务器或不同的物理服务器上运行。 以下是 RabbitMQ 集群的一些关键特点和实现方式: 1. 数据复制和同步:在集群中,消息、交换器、队列等对象会在所有节点之间进行复制和同步,以确保数据的一致性和可用性。当一个节点接收到消息后,它会将消息复制到其他节点上,以实现数据的冗余备份。 2. 负载均衡:集群中的消息会自动在各个节点之间进行分发和负载均衡。当一个节点接收到消息时,它会根据一定的策略将消息分发给其他节点,以实现消息的平衡处理和提高系统的吞吐量。 3. 高可用性:如果集群中的某个节点发生故障或宕机,其他节点可以接管其工作,并继续提供服务。这种故障转移机制确保了系统的高可用性和持续可靠的消息传递。 4. 集群模式:RabbitMQ 提供了两种集群模式,即镜像队列模式和队列分区模式。镜像队列模式将队列的消息复制到集群中的所有节点,以实现数据的冗余备份。队列分区模式将队列的消息分散到不同的节点上,以提高系统的吞吐量和并发性能。 需要注意的是,RabbitMQ集群配置需要正确地进行节点配置、网络设置和集群连接等,以确保集群的正常运行和数据的一致性。同时,集群配置还需要考虑到负载均衡、故障转移和性能调优等因素,以满足具体业务需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值