CentOs7 安装rabbitMQ--历时6小时淌过无数坑[已解决]

安装环境
操作系统:CentOS 7.0
erlang:OTP 22.2
rabbitmq:rabbitmq-server 3.8.3

安装时对应下载版本

在这里插入图片描述

安装步骤

  1. 由于安装需要其他一些依赖,直接给出命令,避免报错麻烦

    yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel
    
  2. 安装erlang,由于erlang官网在国外,下载速度极慢,科学上网也需要下载2小时,本人含泪亲测😂

    国内下载链接 提取码:625o
    我把安装包放在了/usr/local/server/下

    tar -zxvf otp_src_22.2.tar_2.gz
    

    在这里插入图片描述
    进入otp_src_22.2目录下,由于没有erlang目录,于是我们先创建一个文件夹在/usr/local/ 目录下

    mkdir erlang
    

    编译源码包,制定安装位置

    ./configure --prefix=/usr/local/erlang
    

    编译完成继续执行

    make && make install
    

    安装完成后,配置环境变量,一定要记得重新加载配置文件

    vim /etc/profile
    
    #########   添加如下内容   ###############
    PATH=$PATH:/usr/local/erlang/bin
    
    source /etc/profile
    

    到此为止erlang(二郎)安装完成
    输入erl看看效果,如果有以下信息则说明安装成功
    在这里插入图片描述

  3. 安装rabbitmq,在这里我依然准备好了源码包

    国内下载链接 提取码:625o

    这里我依然把源码包放到了/usr/local/server
    解压改安装包即可

     tar -xvf rabbitmq-server-generic-unix-3.7.8.tar.xz
    

    进入 /usr/local/server/rabbitmq_server-3.8.3/sbin复制路径

     [root@bogon sbin]# pwd
     
     /usr/local/server/rabbitmq_server-3.8.3/sbin
    

    添加环境变量

     vim /etc/profile
     ------  添加如下内容  ------
     PATH=$PATH:/usr/local/rabbitmq_server-3.7.8/sbin
    
    
     重载一下环境变量
     source /etc/profile
    
     #添加web管理插件,下面会用到
     rabbitmq-plugins enable rabbitmq_management
    

    默认rabbitmq是没有配置文件的,需要去github官网上,复制一个配置文件模版过来,我依然替你们准备好了

    rabbitmq.conf
    只需要把文件复制到/usr/local/server/rabbitmq_server-3.8.3/etc/rabbitmq该目录下即可

    如果你没有github插件的话,可以再该目录下新建文件把文件复制过来即可

     vim rabbitmg.conf 
    

    然后在/usr/local/server/rabbitmq_server-3.8.3/sbin目录下,

     #后台启动rabbitmq服务
     rabbitmq-server -detached
    

    为什么一定要在这个目录呢,那是因为

    The RabbitMQ server scripts are installed into /usr/local/sbin. This is not automatically added to your path, so you may wish to add PATH=$PATH:/usr/local/sbin to your .bash_profile or .profile. The server can then be started with rabbitmq-server.

    其意思就是说,rabbitmq的server的脚本都是安装在我们的sbin目录下的,而这个目录不会自动的添加到我们的系统路径path当中去,因此我们无法执行它相关的命令,而是需要先将rabbitmq的path添加到.bash_profile当中。
    在命令行里执行命令:

     vim .bash_profile
     
     按i进入编辑模式,加入类似如下的sbin的路径
     
     export PATH=/usr/local/server/rabbitmq_server-3.8.3/sbin:$PATH
     
     esc退出编辑模式,:wq保存,然后重新启动command工具。
    
     现在就可以在任何地方执行rabbit的命令了。
    

上面,启用了rabbitmq的管理插件,会有一个web管理界面,默认监听端口15672,将此端口在防火墙上打开,则可以访问web界面:

使用默认的用户 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的限制了。如图:
在这里插入图片描述

web控制界面:

主页
在这里插入图片描述

  • connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况
  • channels:通道,建立连接后,会形成通道,消息的投递获取依赖通道。 Exchanges:交换机,用来实现消息的路由
  • Queues:队列,即消息队列,消息存放在队列中,等待消费,消费后被移除队列。

端口:
在这里插入图片描述
添加用户

在这里插入图片描述
上面的Tags选项,其实是指定用户的角色,可选的有以下几个:

  • 超级管理员(administrator)

    可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。

  • 监控者(monitoring)

    可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)

  • 策略制定者(policymaker)

    可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。

  • 普通管理者(management)

    仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。

  • 其他

    无法登陆管理控制台,通常就是普通的生产者和消费者。

创建虚拟主机(Virtual Hosts)

为了让各个用户可以互不干扰的工作,RabbitMQ添加了虚拟主机(Virtual Hosts)的概念。其实就是一个独立的访问路径,不同用户使用不同路径,各自有自己的队列、交换机,互相不会影响。
在这里插入图片描述
创建好虚拟主机,我们还要给用户添加访问权限:

点击添加好的虚拟主机:
在这里插入图片描述
进入虚拟主机设置界面:

在这里插入图片描述

常用指令

服务启动停止:

启动: rabbitmq-server -detached

停止: rabbitmqctl stop

插件管理:

插件列表: 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

设置用户角色: 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:一个正则匹配哪些资源能被该用户读取

在这里插入图片描述

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值