nginxs

运维博客

RabbitMQ server 3.6安装介绍

2016/05/27 22:39 于 系统 0

微信 微博 豆瓣 人人

介绍

RabbitMQ是一个消息传输队列,简单点说就是一个用来接收和转发消息的工具。
你可以把它想象成一个邮局,当你把信件到你的邮箱,邮差肯定会把信件发送到收件人手中。

这里把RabbitMQ比喻成邮箱,邮局和邮差,与真实的邮局差别只是一个发送纸质消息另外一个是二进制数据罢了。


下面是RabbitMQ一个简单的入门操作,首先RabbitMQ使用的erlang实现的所以先要安装erlang

安装Erlang

    yum -y install gcc gcc-devel glibc-devel  ncurses-devel
下载最新的erlang
wget http://erlang.org/download/otp_src_18.3.tar.gz
tar zxf otp_src_18.3.tar.gz
cd otp_src_18.3
./configure && make && make install

安装RabbitMQ

安装解压后直接可以使用
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-generic-unix-3.6.1.tar.xzxz -d rabbitmq-server-generic-unix-3.6.1.tar.xz
tar xf rabbitmq-server-generic-unix-3.6.1.tar

把集群里所有的主机名必须在/etc/hosts文件解析

    192.168.199.232  api-node1.nginxs.net api-node1
192.168.199.233 api-node1.nginxs.net api-node1

当启动api-node1节点的rabbitmq服务以后把内容放到其他节点的相同位置,文件权限400

[root@api-node1 ~]# cat .erlang.cookie
GTZKLOKVHNYLXUSJDORN

查看插件管理

    ./sbin/rabbitmq-plugins list  #查看插件列表
./sbin/rabbitmq-plugins enable rabbitmq_management #开启插件
./sbin/rabbitmq-plugins disable rabbitmq_management #关闭插件

举例:开启web管理
./sbin/rabbitmq-plugins enable rabbitmq_management

访问地址:http://IP/15672

启动RabbitMQ

./sbin/rabbitmq-server -detached

加入集群


  1. 加入集群之前rabbitmq必须关闭app以免消息冲突(为了保证数据正常在形成集群的时候没有数据写入新节点)
  2. 集群的启动顺序,必须先启动硬盘节点然后然能启动内存节点(否则无法启动)

  3. 当集群所有节点都停止运行的时候应该按照后停的服务先启动的顺序启动,否则将导致个别节点消息时空错乱
    语法:./sbin/rabbitmqctl join_cluster rabbit@hostname --{ram|disc}

     ./sbin/rabbitmqctl stop_app
    ./sbin/rabbitmqctl join_cluster rabbit@api-node1

    [root@api-node2 RMQ]# ./sbin/rabbitmqctl cluster_status
    Cluster status of node 'rabbit@api-node2' ...
    [{nodes,[{disc,['rabbit@api-node1','rabbit@api-node2']}]}]
    ./sbin/rabbitmqctl start_app

查看用户

[root@api-node1 rabbitmq_server-3.5.4]# ./sbin/rabbitmqctl list_users
Listing users ...
guest [administrator]

创建用户

[root@api-node1 rabbitmq_server-3.5.4]# ./sbin/rabbitmqctl add_user nginxs myscript
Creating user "nginxs" ...

设置角色

语法:set_user_tags

角色:administrator,monitoring,policymaker,management

[root@api-node1 rabbitmq_server-3.5.4]# ./sbin/rabbitmqctl set_user_tags nginxs administrator
Setting tags for user "administrator" to [] ...
Segmentation fault (core dumped)

设置权限

语法:set_permissions [-p ]

    [root@api-node1 rabbitmq]# ./sbin/rabbitmqctl    set_permissions -p logstore "logstash" ".*" ".*" ".*"
Setting permissions for user "logstash" in vhost "logstore" ...

删除用户

    [root@api-node1 rabbitmq_server-3.5.4]# ./sbin/rabbitmqctl delete_user guest
Deleting user "guest" ...

设置镜像队列策略

语法: set_policy [-p ] [--priority ] [--apply-to ]

    [root@api-node1 rabbitmq_server-3.5.4]# ./sbin/rabbitmqctl set_policy sync-all "^" '{"ha-mode":"all"}'
Setting policy "ha-all" for pattern "^" to "{\"ha-mode\":\"all\"}" with priority "0" …

手动同步队列

rabbitmqctl sync_queue name

停止服务

./sbin/rabbitmqctl stop PID
./sbin/rabbitmqctl stop 52641

rabbitmqrabbitmq clusterrabbitmq集群rabbitmq集群启动顺序

管理