RabbltMq消息中心_RabbitMQ集群搭建文档

RabbitMQ集群搭建文档

一.服务器

1、操作系统:linux (contos 6.5)

2、个数:3台

3、Ip和端口

    10.30.1.165672(磁盘节点)

    10.30.1.37:5672(内存节点)

    10.30.1.38:5672(内存节点)

4、依赖的相关安装包:

        Erlang 、Rabbitmq-server 、socat(rabbitmq的安装依赖)、Haproxy、keepzlived

5、整体架构图:

 

 

二、常用命令

1、常用:

rabbitmqctl stop          # 停止erlang节点和rabbitmq

rabbitmqctl stop_app      # 停止rabbitmq服务

2、虚拟机 :

rabbitmqctl add_vhost 虚拟机名          # 创建虚拟机

rabbitmqctl delete_vhost 虚拟机名       # 删除虚拟机

rabbitmqctl list_vhost                 # 查看所有的虚拟机

3、权限:

# 授予用户配置、读、写的权限

rabbitmqctl set_permissions -p vhost名称 \用户名 ".*" ".*" ".*"  

4、集群:  

# 将当前节点加入@后的名称的 rabbitmq节点中 (之前需要先执行rabbitmqctl stop_app)
rabbitmqctl join_cluster rabbit@rabbitmq的名称 

# 查看当前集群节点
rabbitmqctl cluster_status   

# 修改当前的节点为内存或磁盘节点(之前需要先执行 rabbitmqctl stop_app,
# 不能把一个集群中唯一的disk node转化  为ram node)
rabbitmqctl change_cluster_node_type [ disc | ram ] 

# 远程移除cluster中的一个node,前提是该node必须处于offline状态,
# 如果是online状态,则需要加--offline参数
forget_cluster_node [--offline]      

update_cluster_nodes clusternode    

# 同步镜像队列
sync_queue queue                     

ancel_sync_queue queue  

5、插件:

# 查看所有的插件
rabbitmq-plugins list 

# 启动trace插件
rabbitmq-plugins enable rabbitmq_tracing 

6、用户角色:

RabbitMQ的用户角色分类:none、management、policymaker、monitoring、administrator      
使用administrator权限才能看见trace插件内容

sudo rabbitmqctl set_user_tags 用户名 角色名(5种角色名)#设置用户角色

 

7、其他:

# 清除用户的权限
clear_permissions [-p <vhostpath>] <username>  

# 查看队列上的消息
rabbitmqctl list_queues  

# 过滤vhost的队列上的消息
rabbitmqctl list_queues -p vhost名称  

# 查看队列的消息信息列表 rabbitmqctl 
rabbiemqctl list_queues name messages consumers memory 

# 检查队列的其他属性(同时 auto_delte 会被设置为false)
list_queues name durable auto_delete 

# 查看交换器和绑定(返回交换器名称和类型)
rabbitmqctl list_exchanges             

# 交换器的更多详细信息
rabbitmqctl list_exchanges name type durable auto_delelte 

# 查看绑定信息(返回交换器名 队列名 路由键和参数)
rabbitmqctl list_bindings  

 

三、安装步骤(所需安装包《rabbitmq及相关依赖文件》)

说明:集群是利用了erlang 是cookie 镜像组成,并且各节点中只报存了metadata元 数据信息,即exchange queue binding等信息。消息信息任然存在各节点中,使用 erlang 镜像保证,其中某一节点down掉,不影响正常使用。

1)、 erlang 安装(使用rpm安装包)

16、37、38服务器上进行安装

rpm -i ***.rpm

检查是否安装成功

2)、 Rabbitmq安装(使用rpm安装包)

16、37、38服务器上进行安装

rpm -i ***.rpm

1. 三台rabbitmq服务器修改hosts信息

vi /etc/hosts  (增加信息如下:16为磁盘节点,37、38为内存节点)

10.30.1.16   node1
10.30.1.37   node2
10.30.1.38   node3

2.同步rabbitmq各个节点中的cookie(若不是使用rpm进行安装,可使用 sudo find / -name .erlang.cookie 查找文件  )

文件为400权限,需先修改为修改chmod 777 .erlang.cookie 

将所有节点的cookie信息全部一致即可

最后将.erlang.cookie 的权限修改为400,否则启动报错

sudo chmod 400 .erlang.cookie 

 

3.将节点串联在一起,组成集群:

  都执行(start是启动erlang和rabbitmq,start_app仅启动rabbitmq): rabbitmq-server start  

  在磁盘节点启动的情况下,内存节点做相同的操作:

          rabbitmqctl stop_app

  rabbitmqctl join_cluster --ram rabbit@node1

若执行中未添加可选参数 --ram  则可以使用

        rabbitmqctl change_cluster_node_type [ disc | ram ] 但是需要先执行

  rabbitmqctl  stop_app

查看集群状态:rabbitmqctl cluster_status

 

3) Haproxy安装

37、38服务器上进行安装

         # wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.24.tar.gz 
         # chmod +x haproxy-1.4.24.tar.gz 
         # tar xzvf haproxy-1.4.24.tar.gz 
         # cd haproxy-1.4.24 
         //linux2.6 kenel的epoll功能可以提高HAProxy的性能,故在编译是要加上TARGET=linux26或TARGET=generic 
         # make TARGET=generic 
         # make install 

       # mkdir conf 
       # touch haproxy-rabbitmq.conf 
       # chmod +x haproxy-rabbitmq.conf 
       # vi haproxy-rabbitmq.conf 

 

最后: ./haproxy -f /etc/haproxy-rabbitmq.conf 

启动可能会报错cannot raise FD limit to 8027  linux默认的文件打开数过大,需要修改最大数;

只能使用root用户组登录, ulimit -a 其中 open files 就是最大的文件打开数,可以进行永久修改;

vi /etc/security/limits.conf   增加(* 表示所有用户,soft 软 hard 硬件):

* soft nofile 32768  

* hard nofile 65536

然后需要 shutdown -r now 或 reboot 重启系统

 

4) keepalived安装(安装haproxy的服务器上安装keepalived)

37、38服务器上进行安装

1.下载
http://www.keepalived.org/download.html

wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz

2.安装(非root组用户,自行sudo)
tar -zxvf keepalived-1.2.2.tar.gz
cd keepalived-1.2.2
./configure --prefix=/usr/local/keepalived/  --disable-fwmark

make && make install

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cd /etc/init.d/
chkconfig --add keepalived
chkconfig keepalived on
mkdir -p /etc/keepalived

 

cp /usr/local/keepalived/etc/sysconfig/keepalived/keepalived.conf /etc/keepalived/keepalived.conf

 

sudo mkdir /etc/keepalived/scripts

sudo touch haproxy_mster.sh

sudo touch haproxy_check.sh

 

vi haproxy_mster.sh #内容如下:

 

vi haproxy_check.sh #内容如下:

 

 

vi keepalived/keepalived.conf

 

需要 Root权限 运行keepalived (start 、stop 、restart)

service keepalived -D -f /etc/keepalived/keepalived.conf

如果root用户启动没有权限:

chmod +x  /etc/init.d/keepalived 增加执行权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值