安装RabbitMQ

RabbitMQ是流行的开源消息队列系统,用erlang语言开发,故首先需要安装erlang依赖及erlang。

  1. 安装erlang依赖的基本环境,通过yum方式进行安装:

    yum -y install gcc glibc-devel make ncurses-devel openssl-devel autoconf
  2. 下载并安装erlang,这里使用的是erlang-R15B-02.1.el6.x86_64.rpm,将其拷贝至虚机中并通过yum方式进行安装:

    yum -y install erlang-R15B-02.1.el6.x86_64.rpm
  3. 测试erlang环境,输入erl
  4. 下载rabbitmq官方server版并安装
    地址:http://www.rabbitmq.com/install-rpm.html
    这里使用的是rabbitmq-server-3.3.5-1.noarch.rpm版本,通过xftp软件或者其他方式上传到虚拟机中,使用yum方式进行安装:

    yum -y install rabbitmq-server-3.3.5-1.noarch.rpm

启动RabbitMQ

  1. 通过系统服务启动rabbitmq-server

    如果无法正常启动,则可以通过日志进行故障排查

    另外通过chkconfig命令可以查看rabbitmq服务是否已经启动:

    chkconfig --list rabbitmq-server
  2. 开启RabbitMQ Web管理插件
    首先查看插件list的相关信息:

    rabbitmq-plugins list

    启动web管理插件:

    rabbitmq-plugins enable rabbitmq_management

    如果成功启动插件,使用service rabbitmq-server restart命令重启rabbitmq服务,使其生效。

  3. 访问web管理插件界面
    通过浏览器打开web界面,地址为http://ip:15672/mgmt/,默认的用户名和密码均为guest。
    如果无法访问,查看rabbitmq日志信息,可能原因主要有两方面:端口15672被占用、防火墙开启。
    通过下面命令关闭防火墙,建议设置为开机自动关闭:

    service iptables stop
    chkconfig iptables off
  4. Guest账户无法登陆web管理界面
    出于安全性的考虑,rabbitmq从3.3版本以后,guest用户默认只能通过localhost才能登陆使用。
    这里可以通过创建rabbitmq.config文件,解除上述访问限制。

    vi /etc/rabbitmq/rabbitmq.config
    # 内容如下
    [{rabbit, 
        [
            %%%% Network Connectivity
            %% ====================
            %%
            %% By default, RabbitMQ will listen on all interfaces, using
            %% the standard (reserved) AMQP port.
            %%
            {tcp_listeners, [5672]},
            {loopback_users, ["admin"]}
        ]
    }].

搭建RabbitMQ集群

Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先构建起erlang的集群环境。

Erlang的集群中各节点是通过一个magic cookie来实现的,这个cookie存放在.erlang.cookie 中,

故必须保证各节点cookie保持一致,否则节点之间就无法通信。建议在做下列操作前,关闭rabbitmq-server服务。

  1. 设置节点cookie
    cookie文件位于/var/lib/rabbitmq下

    将该节点的.erlang.cookie文件内容(如下面的"XXXXXXXXXXXXX"字符串)复制到其他所有节点的同文件中,记得要先赋予文件写权限,写完后再取消写权限:

    chmod 700 .erlang.cookie
    echo -n "XXXXXXXXXXXXX" > .erlang.cookie 
    chmod 400 .erlang.cookie

    注意:复制字符串时,千万不要带上空格等无用信息

  2. 确保节点间主机名称可以相互解析
    将集群中全部机器的(ip地址 主机名)分别添加到每台机器的hosts文件中:
  3. 节点组成集群
    首先启动rabbitmq-server的服务,运行各个机器的节点,并查看状态:

    service rabbitmq-server start
    rabbitmqctl stop
    rabbitmq-server -detached
    rabbitmqctl status

    假设有三台机器,分别为node1、node2、node3,那么下面将node2和node3与node1组成集群(即在node2和node3两台机器中做如下操作):

    rabbitmqctl stop_app
    rabbitmqctl join_cluster rabbit@node1
    rabbitmqctl start_app

    配置完成后,可以在任意节点机器上执行 rabbitmqctl cluster_status 来查看是否集群配置成功:

  4. 设置镜像队列策略

    在任意节点上执行下列策略,将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一致。当有新节点加入集群时,队列将被镜像到那个节点。

    rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
  5. 节点退出集群

    以node1节点为例,如果需要将其退出集群

    rabbitmqctl stop_app
    rabbitmqctl rest

创建集群用户

由于后面部署BuildPlatform时,所用到的rabbitmq账户为admin,密码为123456。

因此这里需要首先创建用户,方法主要有两个:

  1. Web管理页面创建
    使用guest账户登陆web管理界面后,点击Admin标签,原本只有一个guest账户,
    这里新建admin账户,设置密码,并选中名为[Admin]的Tags:

    点击页面右侧的Virtual Host标签后,进入下图中方框的链接:

    找到Set permission部分,将admin用户添加到当前Permissions中:
  2. 命令行方式创建

    创建admin用户
    rabbitmqctl add_user admin 123456
    设置admin用户administrator角色
    rabbitmqctl set_user_tags admin administrator
    查看已创建用户
    rabbitmqctl list_users
    赋予admin用户权限
    rabbitmqctl  set_permissions -p /  admin '.*' '.*' '.*'

    上述命令确保用户admin具有/这个virtual host中所有资源配置、写、读权限,以便管理其中的资源

建议

强烈建议将RabbitMQ服务设置为开机自启动:

chkconfig rabbitmq-server on

rabibtMQ安装及集群配置-linux的更多相关文章

  1. 从零开始安装Redis 集群(Linux CenOS7)

    从零开始安装Redis 集群(Linux CenOS7) 使用ISO安装CentOS7虚拟机 配置静态IP(参考Mac VMware Fusion CentOS7配置静态IP) 安装vim [root ...

  2. rocketMq安装及集群配置

    网上关于rocketMq安装.集群配置的文章有很多,作为一个初学者,跟着网上的各种教程安装遇到了各种坑,可谓是一路坎坷.本文记录下rocketMq安装的完整过程.希望对你有一点帮助 安装rocketM ...

  3. Zookeeper 安装及集群配置注意点

    Zookeeper在ubuntu下安装及集群搭建,关于集群搭建,网上很多文章 可以参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-z ...

  4. zookeeper的安装及集群配置

    1.解压 2.修改配置文件 cp zoo_sample.cfg zoo.cfg vim zoo.cfg dataDir=/usr/local/zookeeperData 其余采用默认 参数说明: ti ...

  5. CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-8CDH5安装和集群配置

    Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了.      准备文件 从 http://archive.cloudera.com/cdh5/par ...

  6. Elasticsearch 安装与集群配置

    一.软件版本 操作系统:CentOS-6.5-x86_64 ES版本:5.0 主机:192.168.63.246 主机: 192.168.63.242 二.部署环境规划:   1. 需求:jdk版本: ...

  7. hadoop分布式安装及其集群配置笔记

    各机器及角色信息: 共10台机器,hostname与ip地址映射在此不做赘述.此为模拟开发环境安装,所以不考虑将NameNode和SecondaryNameNode安装在同一台机器. 节点 角色 na ...

  8. elasticsearch简单的安装以及集群配置详解

    首先要确保有java8的环境,安装方法如下(centos) wget --no-check-certificate --no-cookies --header "Cookie: oracle ...

  9. Redis集合 安装 哨兵集群 配置

    redis相关 redis基础 redis发布订阅 redis持久化RDB与AOF redis不重启,切换RDB备份到AOF备份 redis安全配置 redis主从同步 redis哨兵集群 redis ...

随机推荐

  1. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(12)-实现用户异步登录和T4模板

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(12)-实现用户异步登录和T4模板 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建  ...

  2. Android手游《》斗地主完整的源代码(支持单机和网络对战)

    Android手游<斗地主>完整的源代码(支持单机和网络对战)下载.一个很不错的源代码. 斗地主掌游是一个独特的国内社会斗地主棋牌游戏,之后玩家可以下载网上斗地主和全世界.掌游斗地主特点: ...

  3. Visual Studio GitHub For Windows部署

    使用GitHub For Windows部署Visual Studio项目 因为最近同时再看很多技术方面的书,书上的例子有很多自己想亲自尝试一下,但是每次写例子都得创建一个新项目未免太麻烦,索性就整理 ...

  4. int 价值型追记-time

    一个 30 M 的int号码值一次性保存.和读取一次,避免保存为char 种类,进行格转变,格转换时间是非常耗时. #include <iostream> #include <fst ...

  5. oracle_连接数_查看

    查看oracle数据库的连接数以及用户   .查询oracle的连接数 select count(*) from v$session; .查询oracle的并发连接数 select count(*) ...

  6. measureChildren作品

    无论是在改写View依然是ViewGroup什么时候.特别ViewGrop什么时候,通常是不可避免的重写onMeasure方法,我们一定会调用setMeasuredDimension()将測量好的宽高 ...

  7. Python美女[从新手到高手]--阅读&quot;见个面问题 HashMap 储存方法&quot;联想

    今伯乐在线 上看到一篇文章.一道面试题看 HashMap 的存储方式.也就是问: 在 HashMap 中存放的一系列键值对,当中键为某个我们自己定义的类型.放入 HashMap 后,我们在外部把某一个 ...

  8. 【Unity 3D】学习笔记三十八:角色控制器

    角色控制器 在unity中,已经帮我们实现的上下左右跳等动作,并将他们封装成了角色控制器.角色控制器保存在unity标准资源包中,能够说是很的强大.能够模拟第一或者第三人称视角.不受刚体的限制,很适用 ...

  9. POJ1258 基础最小生成树

    本文出自:http://blog.csdn.net/svitter 题意:给出一个数字n代表邻接矩阵的大小,随后给出邻接矩阵的值.输出最小生成树的权值. 题解: prime算法的基本解法: 1.选择一 ...

  10. 【百度地图API】如何实现信息窗口轮询

    原文:[百度地图API]如何实现信息窗口轮询 摘要: 很多微博或者SNS开发者,想结合地图展示用户的微博或者状态.这时,利用信息窗口就是最好的展示方式了. 在这里,我们使用信息窗口轮询的方式来实现这一 ...