zoukankan      html  css  js  c++  java
  • rabbit安装

    一、RabbitMQ简单介绍

    RabbitMQ就是当前最主流的消息中间件之一。RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    在目前分布式的大环境下,成为非常常用的消息队列,以下详细说明怎么在centos7 上安装部署rabbitmq,并列举简单的维护,方便运维同学能更好的维护rabbitmq的正常运行。由于一般生产环境,不管是erlang还是 rabbitmq都不能随便进行版本升级,每次升级都是要谨慎的,所以这里推荐都使用源码安装,这样就固定了版本,不会出现通过yum安装的话,不小心升级了版本导致服务故障等的问题。当然yum安装会更简单,这里就不做介绍,有兴趣的参考官方文档即可。

     

    二、Rabbit安装

    1、安装准备

    版本对照

    安装之前,需要去官网查看一下rabbitmq版本对erlang版本的一个支持情况,官网地址:http://www.rabbitmq.com/which-erlang.html

     

    这里,我们安装的erlang是最新的22.2版本,所以,rabbitmq也要安装最新的3.8.2。

     

    Rabbit安装包下载

    在官网上,直接下载该版本的安装包,为了方便安装,最好直接使用编译好的二进制文件包,即开即用,不用进行复杂的yum配置等。具体可以参考官方文档:http://www.rabbitmq.com/install-generic-unix.html

    erlang安装包下载

    rabbitmq是erlang语言编写的,安装rabbitmq之前,需要先安装erlang,这里用erlang的源码进行安装,erlang安装包官网下载地址:http://erlang.org/download/

    把这两个安装包都保存到linux的系统中,准备安装。

     

    2、erlang安装

    #解压到:/usr/local/server
    tar -zxvf otp_src_22.2.tar.gz -C /usr/local/server
    ​
    #这里要新建一个erlang文件夹,因为erlang编译安装默认是装在/usr/local下的bin和lib中,这里我们将他统一装到/usr/local/server/erlang中,方便查找和使用。
    mkdir /usr/local/server/erlang
    ​
    # 在编译之前,必须安装以下依赖包
    yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel
    ​
    #进入解压的otp_src_22.2中
    cd /usr/local/server/otp_src_22.2/
    ​
    #配置erlang的安装路径
    ./configure --prefix=/usr/local/server/erlang
    ​
    #直接执行make && make install 进行编译安装
    make && make install

    安装后,在 /usr/local/server/erlang 中就会出现如下 :

    # 配置环境变量,添加下列配置
    vi /etc/profile
    ​
    # ERLANG_HOME=/usr/local/server/erlang
    # export PATH=$PATH:$ERLANG_HOME/bin
    # export ERLANG_HOME
    ​
    #刷新环境变量
    source /etc/profile

     

    测试是否安装成功:

    #查看是否安装完成,输入如下:
    erl

    在里面输入halt().命令退出来(那个点号别忘记)

     

    3、RabbitMQ安装

    (1)解压安装

    #解压安装包到 /usr/local/server/
    tar -xvf rabbitmq-server-generic-unix-3.8.2.tar.xz -C /usr/local/server/
    ​
    #修改环境变量
    vi /etc/profile
    ​
    #添加配置
    export PATH=$PATH:/usr/local/server/rabbitmq_server-3.8.2/sbin
    ​
    #刷新环境变量
    source /etc/profile
     

    (2)rabbit.config添加

    默认rabbitmq是没有配置文件的,需要去官方github上,复制一个配置文件模版过来。添加rabbit.config 文件,官网样例地址,并复制rabbitmq.conf.example官方提供的样例文件。

     

    这里我把复制的内容保存到Rabbit的安装目录/etc/rabbitmq下,如:/usr/local/server/rabbitmq_server-3.8.2/etc/rabbitmq

     

    (3)服务启动准备

    #添加web管理插件
    rabbitmq-plugins enable rabbitmq_management
    ​
    #启动rabbit服务
    rabbitmq-server -detached
    ​
    #防火墙端口(5672和15672端口)
    firewall-cmd --zone=public --add-port=5672/tcp --permanent
    firewall-cmd --zone=public --add-port=15672/tcp --permanent
    firewall-cmd --reload   #重启防火墙

    (4)外机访问配置

    上面,启用了rabbitmq的管理插件,会有一个web管理界面,默认监听端口15672,则可以访问web界面: http://192.168.126.99:15672/

    使用默认的用户 guest / guest (此也为管理员用户)登陆,会发现无法登陆,报错:User can only log in via localhost。那是因为默认是限制了guest用户只能在本机登陆,也就是只能登陆localhost:15672。可以通过修改配置文件rabbitmq.conf,取消这个限制: loopback_users这个项就是控制访问的,如果只是取消guest用户的话,只需要loopback_users.guest = false ,服务重启后就可以登入。

    注意:

    {loopback_users, [<<"guest">>]}

    这个是erlang格式的原配置,后面是一个列表,可以自定义添加多个用户。是用来定义需要被限制登录的用户。默认是只有guest这一个用户。我们这里只需要设置loopback_users.guest = false 就可以解除guest的限制了。

    到此,RabbitMq就安装好了

     

    三、常用命令

    #服务启动停止:
    ​
    rabbitmq-server -detached   #启动
    ​
    service rabbitmq-server restar  #重启
    ​
    rabbitmqctl stop    #停止
    ​
    rabbitmqctl status  #查看状态
    ​
    ​
    #插件管理:
    ​
    rabbitmq-plugins list   #插件列表 
    ​
    rabbitmq-plugins enable {XXX}   #启动插件(XXX为插件名)
    ​
    rabbitmq-plugins disable {XXX}  #停用插件
    ​
    ​
    #用户管理:
    ​
    rabbitmqctl add_user {username} {password}  #添加用户
    ​
    rabbitmqctl delete_user {username}  #删除用户 
    ​
    rabbitmqctl change_password {username} {newpassword}    #修改密码
    ​
    #设置用户角色,user有5种 tags :
    #   management :访问 management plugin;
    #   policymaker :访问 management plugin 和管理自己 vhosts 的策略和参数;
    #   monitoring :访问 management plugin 和查看所有配置和通道以及节点信息;
    #   administrator :一切权限;
    #   None :无配置
    rabbitmqctl set_user_tags {username} {tag}  
    ​
    rabbitmqctl list_users  #列出用户
    ​
    ​
    #权限管理
    ​
    rabbitmqctl list_permissions    #列出所有用户权限
    ​
    rabbitmqctl list_user_permissions {username}    #查看制定用户权限
    ​
    rabbitmqctl clear_permissions [-p vhostpath] {username} #清除用户权限
    ​
    rabbitmqctl set_permissions [-p vhostpath] {username} conf write read   #设置用户权限
    #   conf: 一个正则匹配哪些资源能被该用户访问 
    #   write:一个正则匹配哪些资源能被该用户写入 
    #   read:一个正则匹配哪些资源能被该用户读取

     

  • 相关阅读:
    多个表单项的动态校验
    js遍历循坏二维数组,显示天气情况
    纯css3 实现的焦点图
    实现元素水平和垂直居中的问题
    简易商品购物车
    用jquery的animate动画做成的左侧菜单伸缩
    MongoDB聚合
    NoSQL介绍
    MongoDB索引
    数据库索引简介
  • 原文地址:https://www.cnblogs.com/TvvT-kevin/p/12577517.html
Copyright © 2011-2022 走看看