欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(转载:亲测可用很详细)Centos7 安装rabbitmq详细教程

程序员文章站 2022-05-17 08:13:04
...

Centos7 安装rabbitmq详细教程

             <div id="article_content" class="article_content clearfix">
        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-211130ba7a.css">
                        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-211130ba7a.css">
            <div class="htmledit_views" id="content_views">
                                        <p><strong>一、RabbitMQ简单介绍</strong><br>

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

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

 

二、Centos7下安装rabbitmq

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

  1. wget http://erlang.org/download/otp_src_21.1.tar.gz
  2. tar -zxvf otp_src_21.1.tar.gz
  3. cd otp_src_21.1
  4. # 这里要新建一个erlang文件夹,因为erlang编译安装默认是装在/usr/local下的bin和lib中,这里我们将他统一装到/usr/local/erlang中,方便查找和使用。
  5. mkdir -p /usr/local/erlang
  6. # 在编译之前,必须安装以下依赖包
  7. yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel
  8. ./configure --prefix=/usr/local/erlang

    erlang的编译需要用到java环境,如果不装,会报错如下。

(转载:亲测可用很详细)Centos7 安装rabbitmq详细教程

以下的两个:APPLICATIONS INFORMATION,DOCUMENTATION INFORMATION是正常的,不影响正常编译。

 

然后,直接执行make && makeinstall 进行编译安装

make && make install

 

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

(转载:亲测可用很详细)Centos7 安装rabbitmq详细教程

 

然后将/usr/local/erlang/bin这个文件夹加入到环境变量中,加载以下即可直接使用。

  1. vim /etc/profile
  2. ######### 添加如下内容 ###############
  3. PATH=$PATH:/usr/local/erlang/bin
  4. ########################################
  5. source /etc/profile

 

到此,既安装完成,直接输入erl,得到如下图得安装成功

(转载:亲测可用很详细)Centos7 安装rabbitmq详细教程

 

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

(转载:亲测可用很详细)Centos7 安装rabbitmq详细教程

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

(转载:亲测可用很详细)Centos7 安装rabbitmq详细教程

 

  1. # 下载源码包
  2. wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.8/rabbitmq-server-generic-unix-3.7.8.tar.xz
  3. # 解压
  4. tar -xvf rabbitmq-server-generic-unix-3.7.8.tar.xz -C /usr/local/
  5. # 添加环境变量
  6. vim /etc/profile
  7. ------ 添加如下内容 ------
  8. PATH=$PATH:/usr/local/rabbitmq_server-3.7.8/sbin
  9. # 重载一下环境变量
  10. source /etc/profile
  11. # 添加web管理插件
  12. rabbitmq-plugins enable rabbitmq_management

 

默认rabbitmq是没有配置文件的,需要去官方github上,复制一个配置文件模版过来,最新的3.7.0以上的版本可以使用新的key-value形式的配置文件rabbitmq.conf,和原来erlang格式的advanced.config相结合,解决一下key-value形式不好定义的配置。github地址:https://github.com/rabbitmq/rabbitmq-server/tree/master/docs

由于我这里安装的是最新的3.7.8。所以就使用新的配置文件,将配置文件复制到 /usr/local/rabbitmq_server-3.7.8/etc/rabbitmq/ 下。如:

(转载:亲测可用很详细)Centos7 安装rabbitmq详细教程

 

ok,然后就可以启动rabbitmq服务了,其实没有配置文件也是可以启动服务的。

  1. # 后台启动rabbitmq服务
  2. rabbitmq-server -detached

 

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

(转载:亲测可用很详细)Centos7 安装rabbitmq详细教程

 

使用默认的用户 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的限制了。如图:

(转载:亲测可用很详细)Centos7 安装rabbitmq详细教程

然后,就能登陆到web控制界面:

(转载:亲测可用很详细)Centos7 安装rabbitmq详细教程

 

OK,到此rabbitmq就算是装好了,rabbitmq的webui功能比较齐全,可以做到很多东西,包括常见的用户管理,权限管理,vhost管理等等。如图

(转载:亲测可用很详细)Centos7 安装rabbitmq详细教程

点击自身用户,可以设置用户的权限

(转载:亲测可用很详细)Centos7 安装rabbitmq详细教程

 

总的来说,使用webui已经非常方便了,可以实现基本常用的管理操作。当然除了用web ui,还有用命令行:下面列举一下常用的一些命令行操作:

服务启动停止:

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

 

OK,今天就介绍到这里。这只是单机安装rabbitmq的单节点,且是使用了比较麻烦的源码安装。

而rabbitmq本身就是常用于分布式架构的中间组件,所以rabbitmq的集群搭建更为重要,这个下次再说,这个下次再说

 

        <div class="person-messagebox">
            <div class="left-message"><a href="https://blog.csdn.net/weixin_41004350">
                <img src="https://profile.csdnimg.cn/C/7/8/3_weixin_41004350" class="avatar_pic" username="weixin_41004350">
            </a></div>
            <div class="middle-message">
                                    <div class="title"><span class="tit "><a href="https://blog.csdn.net/weixin_41004350" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;,&quot;ab&quot;:&quot;new&quot;}" target="_blank">Amos_x</a></span>
                    <!-- 等级,level -->
                                            <img class="identity-icon" src="https://csdnimg.cn/identity/blog6.png">                                            </div>
                <div class="text"><span>原创文章 115</span><span>获赞 154</span><span>访问量 56万+</span></div>
            </div>
                            <div class="right-message">
                                        <a class="btn btn-sm  bt-button personal-watch" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;,&quot;ab&quot;:&quot;new&quot;}">关注</a>
                                                            <a href="https://im.csdn.net/im/main.html?userName=weixin_41004350" target="_blank" class="btn btn-sm bt-button personal-letter">私信
                    </a>
                                </div>
                        </div>
                    
    </div>
</article>