zoukankan      html  css  js  c++  java
  • CentOS7下安装RabbitMQ

    一:安装Erlang运行环境,毕竟RabbitMQ是erlang开发的:yum install -y erlang.x86_64;(不过如果用yum安装其实应该是会自动安装依赖项的)

    二:安装RabbitMQ,yum install -y rabbitmq-server.noarch;(安装服务,后面还要有对应客户端去和服务沟通)

    三:安装好后通过whereis rabbitmq查看rabbitmq安装在哪(似乎就是用来搜索用的),我的是/usr/lib/rabbitmq /etc/rabbitmq;否则是配置文件目录;

    通过cd /usr/lib/rabbitmq/bin;然后通过./rabbitmqctl status查看rabbitmq的服务状态,这一步是unable to connect xxx,毕竟我们刚安装还没启动呢;

    四:操作RabbitMq

    1.启动服务:在bin目录下执行./rabbitmq-server -detached(-detached后台启动,类似redis的daemon)(rabbitmq-server是一个shell脚本);

    补充:可以看一下自己安装后的.erlang.cookie文件在哪,如果在~/目录下可以创建硬链接到rabbitmq根目录下(mv没用,cp没用),与我而言就是/usr/lib/rabbitmq目录;

    注意,如果你是以有家目录的用户启动则此文件在家目录下否则在rabbitmq根目录下;.erlang.cookie要使其own为启动用户且赋予600的权限,然后客户端工具的调用start stop status方法也该是这个用户(因为调用时.erlang.cookie值会作为参数一部分)

    2.查看rabbitmq服务状态,注意要用同一个账户,即服务用root那么客户端也用root,命令为:./rabbitmqctl status;然后主要看:epmd reports:的输出;

    3.停止rabbitmq,./rabbitmqctl stop

    4.然后启用插件(方便管理mq):./rabbitmq-plugins enable rabbitmq_management;配置linux 端口 15672 网页管理  5672 AMQP端口;然后访问http://localhost:15672就可以管理了;默认用户guest 密码guest

    n)但是这个guest用户只能本机访问,可以vim /etc/rabbitmq/rabbitmq.config将loopback_users, []}的注释%%删除,注意后面的,也要删除否则rabbitmq无法启动;

    (注意,如果不需要外部访问15672/tcp端口那么是不需要防火墙开启端口的,但是这里因为需要在另一台主机上用guest访问,故需要开启15672端口,如果另一台主机要用到此消息中间件那么也要开启5672端口供外部主机使用producer或consumer功能;)

    ,当开启了loopback_users,[]..和端口后外部主机就可以通过guest用户管理了;


    n)也可以添加一个自己的超级用户来管理:1.rabbitmqctl add_user silentdoer password;

    2.rabbitmqctl set_user_tags hxb administrator,注意可以给一个用户设置多个tag用空格分开;(新的用户仍然需要开启端口,除非只是本机用)
    第一个是创建silentdoer用户和设置密码;第二个是为用户赋予权限;第三个是为用户赋予角色为administrator(guest也是administrator),角色有6f种:初始状态(无任何角色),none,management,policymaker,monitoring,administrator最高;

    3.rabbitmqctl set_permissions -p "/" silentdoer ".*" ".*" ".*";(三个.*分别对应ConfP  WriteP  ReadP,即设置silentdoer在/这个vhost里拥有所有的配置权限,所有的写权限和所有的读权限,主要是对exchange和queue的操作,每个账户管理一个vhost,但是一个vhost可以有多个管理者)(一般而言,创建用户后最好先赋予其tag,之后才是权限)

    none tag的用户一般就是普通的生产者和消费者;而对于初始状态通过./rabbitmqctl list_users查看它的角色是[],即空,可以理解为它当下无法做任何事;

    none用户无法访问management plugin;而角色越高是能包括上一级角色的权限的??(据说是待测,如果是的话多角色似乎就没软用了)

    administrator是可以负责整个MQ的运维,不只是管理某个vhost或某个node(进程),上面的一个用户管理一个vhost不准确,应该说none和management的只能操作-管理一个vhost;

    n)rabbitmqctl delete_user admin用来删除一个用户;

    n)rabbitmqctl change_password admin admin123修改admin账户的密码为admin123;

    n)rabbitmqctl  list_users查看当前用户列表;

    n)查看(指定hostpath)所有用户的权限信息

    rabbitmqctl  list_permissions  [-p  VHostPath](如:-p "/")

    n)查看指定用户的权限信息

    rabbitmqctl  list_user_permissions  User

    n) 清除用户的权限信息

    rabbitmqctl  clear_permissions  [-p VHostPath]  User(暂时理解,是因为一个user只能管理一个vhost故vhost参数可以省略)

    n)rabbitmqctl list_vhosts

    n)rabbitmqctl add_vhost <VHostPath> (尖括号表示必须,中括号表示可选,如[-p VHostPath])

    n)rabbitmqctl delete_vhost <VHostPath>(/这个vhost不能删除)

    n)rabbitmqctl list_exchanges [-p <VHostPath>] [<ExchangeInfoItem> ...]

    n)rabbitmqctl list_queues    [-p <VHostPath>] [<QueueInfoItem> ...]

    n)list_bindings  [-p <VHostPath>] 

    n)list_connections [<ConnectionInfoItem> ...]

    n)list_consumers

    n)list_channels

    n)list_parameters

    n)list_policies

    n)cluster_status


    补充:创建用户后可以不给用户配置任何角色/tag,和不设置任何权限;这里角色可以暂时理解为管理者的角度,即后台用户;而权限则是针对于producer和comsumer的角度,因此配置角色可以不设置vhost,因为它不一定要去生产/消费,而permission则是要配置vhost,毕竟它是作为producer或consumer它需要对具体的vhost进行操作;

    补充:rabbitmqctl和rabbitmq-server均要在root权限下运行;
    补充:安装好后还可以通过service rabbitmq-server start|stop|status来操作rabbitmq服务(其它命令则用rabbitmqctl来执行),它其实是systemctl类型的服务,在/usr/lib/systemd/system里有对应的rabbitmq-server.service文件;

    注意可以改名为rabbitmq.service不然名字太长了,然后记得systemctl enable rabbitmq.service;

  • 相关阅读:
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    使用Jasmine和karma对传统js进行单元测试
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    nginx 基于IP的多虚拟主机配置
    Shiro 框架的MD5加密算法实现原理
    项目实战:Qt+OSG三维点云引擎(支持原点,缩放,单独轴或者组合多轴拽拖旋转,支持导入点云文件)
    实用技巧:阿里云服务器建立公网物联网服务器(解决阿里云服务器端口,公网连接不上的问题)
  • 原文地址:https://www.cnblogs.com/silentdoer/p/8728385.html
Copyright © 2011-2022 走看看