zoukankan      html  css  js  c++  java
  • RabbitMq install on Centos

    • 安装服务(root)

    erlang官方安装说明:https://www.erlang-solutions.com/resources/download.html

    step 1: 安装erlang的yum源 (或者安装epel源,如果不要求最最新版本的话)

    wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm

    rpm -Uvh erlang-solutions-1.0-1.noarch.rpm

    step 2: 

    安装erlang

    # yum clean all ; yum makecache

    # yum install erlang   -y    (Rabbitmq 基于 erlang 语言开发,所以需要安装 erlang 虚拟机)

    step 3: 
    确认erlang安装成功 

    erl 

    Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [kernel-poll:false]

    Eshell V5.8.5 (abort with ^G)
    1>io:format("hello world ~n").

    输出 hello world ok   安装erlang完毕, 用 halt(). 退出

     step 4:

    安装rabbitmq-server

    Rabbitmq官方安装说明: http://www.rabbitmq.com/install-rpm.html

    导入rabbitmq 数字签名key 支持后安装

           # wget https://www.rabbitmq.com/releases/rabbitmq-server/current/rabbitmq-server-3.6.1-1.noarch.rpm
           # rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc     
           # yum install rabbitmq-server-3.6.1-1.noarch.rpm

    rabbitmq-server安装完成


    第一次安装时没有更新EPEL安装到这里遇到的问题:

    提示erlang 版本支持问题

    Error: Package: rabbitmq-server-3.4.2-1.noarch (/rabbitmq-server-3.4.2-1.noarch)

    Requires: erlang >= R12B-3
    You could try using --skip-broken to work around the problem
    You could try running: rpm -Va --nofiles --nodigest

    删除所有相关rpm包后重新按照官方文档安装

    rpm -e  epel-release-6-8.noarch


    • 运行RabbitMQ Server 

      设置开机自动启动 rabbitmq-server
      # chkconfig --level 35 rabbitmq-server on
       
      启动rabbitmq-server   [start][stop][etc]
      # service rabbitmq-server start
       
      rabbitmqctl status  #查看运行信息
     
    • 安装插件管理界面  
             # mkdir -m 777 /etc/rabbitmq/ (如果目录已经存在直接执行 # chmod 777  -R  /etc/rabbitmq/
     
             # rabbitmq-plugins enable rabbitmq_management
     
             重启rabbitmq-server
             # rabbitmqctl stop
     
              # rabbitmq-server start 
       
             查看管理端口有没有启动:
             # netstat -tnlp|grep 15672
        
             浏览器打开http://IP:15672 账号密码都是guest,如果局域网无法访问设置防火墙过滤规则或关闭防火墙
            
             如果仍然出现无法登陆的想象,查看日志后,显示:
             =ERROR REPORT==== 31-Dec-2014::17:00:41 ===
             webmachine error: path="/api/whoami"
             "Unauthorized"
             那么请运行如下的命令,增加用户admin,密码admin即可。
             #rabbitmqctl  add_user admin admin                             新增加用户admin
             #rabbitmqctl set_permissions  admin  ".*" ".*" ".*"         设置admin的权限
             #rabbitmqctl set_user_tags admin administrator             设置用户角色为高级管理员
             #rabbitmqctl list_users                                                  查看当前已有用户列表
    安装rabbitmqadmin命令:
    #chmod 755 /usr/local/bin/rabbitmqadmin
    #rabbitmqadmin declare queue name=ha.123 durable=true    命令行创建队列在节点上建立一个名字为ha.123的队列,durable设为true)
     
    RabbitMQ配置:
     
    相关环境变量参考官网的一些资料:
    http://www.rabbitmq.com/relocate.html
    http://www.rabbitmq.com/configure.html#define-environment-variables
     
     
    创建新的环境配置文件启动服务时会自动加载,没有指定的采取默认值

    touch /etc/rabbitmq/rabbitmq-env.conf

    RABBITMQ_NODENAME=rabbit@server-66    #节点名称
    RABBITMQ_NODE_IP_ADDRESS=0.0.0.0      #监听IP
    RABBITMQ_NODE_PORT=5672                    #监听端口
    RABBITMQ_LOG_BASE=/data/rabbitmq/log   #日志目录
    RABBITMQ_PLUGINS_DIR=/data/rabbitmq/plugins                          #插件目录,,默认 /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.1/plugins

    RABBITMQ_PLUGINS_EXPAND_DIR=/data/rabbitmq/plugins-expand #扩展插件目录,默认/var/lib/rabbitmq/mnesia/rabbit@server-65-plugins-expand

    RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia                         #后端存储目录

     
     把以上提到的三个目录分别进行转移到指定目录后,重新启动服务即可生效。
      
    ---------------------------------------------------------------------------------------------------------
    rabbitMQ一些常用命令

    rabbitctl

    rabbitmqctl 是rabbitMQ中间件的一个命令行管理工具。它通过连接一个中间件节点执行所有的动作。

    rabbitmqctl [-n node] [-q] {command} [command options…]

    [-n node]

    默认的节点是”rabbit@server”,一般是本地节点。

    rabbitmqctl 默认产生详细输出。通过”-q”标示可选择安静模式。

    应用和集群管理

    1.  停止rabbitMQ应用,关闭节点 : rabbitmqctl stop

    2.  停止rabbitMQ应用 : rabbitmqctl stop_app

    3.  启动rabbitMQ应用 : rabbitmqctl start_app

    4.  显示rabbitMQ中间件各种信息 : rabbitmqctl status

    5.  重置rabbitMQ节点 : rabbitmqctl reset和  rabbitmqctl force_reset 从它属于的任何集群中移除,从管理数据库中移除所有数据,例如配置过的用户和虚拟宿主, 删除所有持久化的消息。 force_reset命令和reset的区别是无条件重置节点,不管当前管理数据库状态以及集群的配置。如果数据库或者集群配置发生错误才使用这个最后 的手段。 注意:只有在停止rabbitMQ应用后,reset和force_reset才能成功。

    6.  循环日志文件 : rabbitmqctl rotate_logs[suffix]

    7.  加入到某个节点中:rabbitmqctl join_cluster {clusternode} [--ram]默认是ram类型的,也可以是disc类型

    8.  集群目前的状态:rabbitmqctl cluster_status

    9.  改变当前节点的类型:rabbitmqctl change_cluster_node_type {disc | ram}使用这个命令的时候必须先把该节点stop。

    10. 同步某个队列(建立镜像队列):rabbitmqctl sync_queue {queue-name}

    11. 取消同步某个队列:rabbitmqctl cancel_sync_queue{queue-name}

    用户管理

    1.  添加用户:rabbitmqctl add_user username password

    2.  删除用户:rabbitmqctl delete_user username

    3.  修改密码:rabbitmqctl change_password username newpassword

    4.  清除密码:rabbitmqctl clear_password {username}

    5.  设置用户标签:rabbitmqctl set_user_tags {username} {tag…}如果tag为空则表示清除这个用户的所有标签

    6.  列出所有用户 :rabbitmqctl list_users

    权限控制

    1.  创建虚拟主机:rabbitmqctl add_vhost vhostpath

    2.  删除虚拟主机:rabbitmqctl delete_vhost vhostpath

    3.  列出所有虚拟主机:rabbitmqctl list_vhosts

    4.  设置用户权限:rabbitmqctl set_permissions [-p vhostpath] {username} {conf} {write} {read}

    5.  清除用户权限:rabbitmqctl clear_permissions [-p vhostpath] {username}

    6.  列出虚拟主机上的所有权限:rabbitmqctl list_permissions [-p vhostpath]

    7.  列出用户权限:rabbitmqctl list_user_permissions {username}

    参数管理

    这个不常用,具体的可以去官网看文档

    协议管理

    1.  设置协议:rabbitmqctl set_policy [-p vhostpath] [--priority priority] [--apply-to apply-to] {name} {pattern} {definition}

    a)  name

    协议的名字

    b)  pattern

    匹配的正则表达式

    c)  definition

    json term的形式来定义这个协议

    d)  priority

    优先级,数字越大优先级越高,默认为0

    e)  apply-to

    policy的类型,有三种:queues exchanges all 默认为all,具体定义可以去官网看文档

    2.  清除协议:rabbitmqctl clear_policy [-p vhostpath] {name}

    3.  列出协议列表:rabbitmqctl list_policies [-p vhostpath]

    服务器状态

    1.  队列列表:rabbitmqctl list_queues [-p vhostpath] [queueinfoitem…]

    queueinfoitem:

    a)  name

    b)  durable

    c)  auto_delete

    d)  arguments

    e)  policy

    f)  pid

    g)  owner_pid

    h)  exclusive_consumer_pid

    i)  exclusive_consumer_tag

    j)  messages_ready

    k)  messages_unacknowledged

    l)  messages

    m)  consumers

    n)  active_consumers

    o)  memory

    p)  slave_pids

    q)  synchronized_slave_pids

    r)  status

    2.  交换机列表:rabbitmqctl list_exchanges [-p vhostpath] [exchangeinfoitem…]

    exchangeinfoitem:

    a)  name

    b)  type

    c)  durable

    d)  auto_delete

    e)  internal

    f)  arguments

    g)  policy

    3.  绑定列表:rabbitmqctl list_bindings [-p vhostpath] [bindinginfoitem…]

    bindinginfoitem:

    a)  source_name

    b)  source_kind

    c)  destination_name

    d)  destination_kind

    e)  routing_key

    f)  arguments

    4.  连接列表:rabbitmqctl list_connections不常用,具体去官网看文档

    5.  通道列表:rabbitmqctl list_channels不常用,具体去官网看文档

    6.  消费者列表:rabbitmqctl list_consumers

    7.  当前状态:rabbitmqctl status

    8.  当前环境:rabbitmqctl environment

    9.  相关报告:rabbitmqctl report

    一些其他的命令

    后台开启rabbitmq服务:rabbitmq-server –detached

    声明队列:rabbitmqadmin declare queue name=queue-name durable={false | true}

    发布消息:rabbitmqadmin publish exchange=exchange-name routing_key=key payload=”context”

    如果有任何疑问可以去官网看文档:

    https://www.rabbitmq.com/man/rabbitmqctl.1.man.html

  • 相关阅读:
    ArrayList 和LinkedList
    Java集合复习
    Android 自定义View 例子一
    ant或perl混淆,打多渠道包,此jar包含证书链未验证的条目 无法签名的问题解决办法
    back键彻底关闭应用程序
    Android中View绘制流程
    XCode的快捷键
    Android系统的设计模式
    AsyncTask和Handler
    Android使用软引用和弱引用
  • 原文地址:https://www.cnblogs.com/wjoyxt/p/4196001.html
Copyright © 2011-2022 走看看