• CentOS安装RabbitMQ 3.8.9


    RabbitMQ简介


    在搭建RabbitMQ之前实现要介绍一下MQ,MQ是什么?

    MQ全称是Message Queue,可以理解为消息队列的意思,简单来说就是消息以管道的方式进行传递

    RabbitMQ是一个实现了AMQP(Advanced Message Queuing Protocol)高级消息队列协议的消息队列服务,用Erlang语言的

    RabbitMQ有成千上万的用户,是最受欢迎的开源消息代理之一。从T-Mobile到Runtastic,RabbitMQ在全球范围内的小型初创企业和大型企业中都得到使用

    RabbitMQ轻巧,易于在内部和云中部署。它支持多种消息传递协议。RabbitMQ可以部署在分布式和联合配置中,以满足大规模,高可用性的要求

    RabbitMQ可在许多操作系统和云环境上运行,并为大多数流行语言提供了广泛的开发人员工具

    RabbitMQ环境版本

    jdk erlang rabbitmq
    1.8 23.1 3.8.9

    下载JDK1.8并且安装

    [root@Mike-Node1 ~]# wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
    [root@Mike-Node1 ~]# tar zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local/ && rm -rf jdk-8u202-linux-x64.tar.gz
    [root@Mike-Node1 ~]# mv /usr/local/jdk1.8.0_202/ /usr/local/jdk/
    [root@Mike-Node1 ~]# vim /etc/profile
    
    #set java environment
    JAVA_HOME=/usr/local/jdk
    CLASSPATH=.:$JAVA_HOME/lib.tools.jar
    PATH=$JAVA_HOME/bin:$PATH
    export JAVA_HOME CLASSPATH PATH
    
    
    [root@Mike-Node1 ~]# source /etc/profile
    [root@Mike-Node1 ~]# 
    [root@Mike-Node1 ~]# java -version
    java version "1.8.0_202"
    Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
    Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
    [root@Mike-Node1 ~]# 

    jdk1.8到此安装完成,只要 java -version 出来版本号就可以

    安装依赖包

    [root@Mike-Node1 ~]# yum install -y gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf

    安装Erlang

    RabbitMQ和Erlang / OTP兼容性列表

    下表提供了当前支持的RabbitMQ版本系列的Erlang兼容性列表。对于已到期的RabbitMQ版本,请参阅不支持的系列兼容性列表

    RabbitMQ版本最低要求的Erlang / OTP最大支持的Erlang / OTP笔记
    3.8.9 22.3 23.x Erlang / OTP 23兼容性说明推荐使用Erlang 23.xErlang 22.x不再支持HiPE
    [root@Mike-Node1 ~]# mkdir /data && cd /data
    [root@Mike-Node1 /data]# 
    [root@Mike-Node1 /data]# wget http://erlang.org/download/otp_src_23.1.tar.gz
    [root@Mike-Node1 /data]# tar zxvf otp_src_23.1.tar.gz
    [root@Mike-Node1 /data]# cd otp_src_23.1
    [root@Mike-Node1 /data/otp_src_23.1]# 
    [root@Mike-Node1 /data/otp_src_23.1]# ./otp_build autoconf
    [root@Mike-Node1 /data/otp_src_23.1]# ./configure && make && make install
    [root@Mike-Node1 /data/otp_src_23.1]# cd 
    [root@Mike-Node1 ~]# 
    [root@Mike-Node1 ~]# erl
    Erlang/OTP 23 [erts-11.1] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]
    
    Eshell V11.1  (abort with ^G)
    1> 
    [root@Mike-Node1 ~]#

    进入erlang命令行表示安装成功

    安装Socat

    [root@Mike-Node1 ~]# yum install -y socat

    安装RabbitMQ

    [root@Mike-Node1 ~]# rpm -Uvh https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9-1.el7.noarch.rpm --nodeps
    Retrieving https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9-1.el7.noarch.rpm
    warning: /var/tmp/rpm-tmp.WZYQYx: Header V4 RSA/SHA256 Signature, key ID 6026dfca: NOKEY
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:rabbitmq-server-3.8.9-1.el7      ################################# [100%]
    [root@Mike-Node1 ~]# 

    如果遇到erlang已安装且版本正确,但是RabbitMQ检测失败的情况
    可以追加参数 —nodeps (不验证软件包依赖)

    启动RabbitMQ

    [root@Mike-Node1 ~]# systemctl enable rabbitmq-server
    Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.
    [root@Mike-Node1 ~]# 
    [root@Mike-Node1 ~]# systemctl start rabbitmq-server
    [root@Mike-Node1 ~]# systemctl status rabbitmq-server

    Web插件安装

    [root@Mike-Node1 ~]# rabbitmq-plugins enable rabbitmq_management
    Enabling plugins on node rabbit@Mike-Node1:
    rabbitmq_management
    The following plugins have been configured:
      rabbitmq_management
      rabbitmq_management_agent
      rabbitmq_web_dispatch
    Applying plugin configuration to rabbit@Mike-Node1...
    The following plugins have been enabled:
      rabbitmq_management
      rabbitmq_management_agent
      rabbitmq_web_dispatch
    
    started 3 plugins.
    [root@Mike-Node1 ~]# 

    配置用户远程

    [root@Mike-Node1 ~]# vi /etc/rabbitmq/rabbitmq.config
    
    [
    {loopback_users, []}
    ].
    
    [root@Mike-Node1 ~]#

    修改默认配置文件路径

    rabbitmq默认数据目录和日志路径

    默认数据目录     /var/lib/rabbitmq/mnesia

    日志路径            /var/log/rabbitmq/

    配置文件路径    /etc/rabbitmq/

    创建新的数据文件和日志文件目录并给权限

    [root@Mike-Node1 ~]# mkdir -p /data/rabbitmq/log   
    [root@Mike-Node1 ~]# mkdir -p /data/rabbitmq/mnesia       
    [root@Mike-Node1 ~]# chmod -R 755 /data/rabbitmq    
    [root@Mike-Node1 ~]# chown -R rabbitmq:rabbitmq /data/rabbitmq 

    创建或者新增环境参数配置文件

    [root@Mike-Node1 ~]# vim /etc/rabbitmq/rabbitmq-env.conf
    
    RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia
    RABBITMQ_LOG_BASE=/data/rabbitmq/log
    
    [root@Mike-Node1 ~]#

    重启RabbitMQ

    [root@Mike-Node1 ~]# systemctl restart rabbitmq-server

    开放防火墙端口

    ####firewalld防火墙
    [root@Mike-Node1 ~]# firewall-cmd --zone=public --add-port=5672/tcp --permanent
    [root@Mike-Node1 ~]# firewall-cmd --zone=public --add-port=15672/tcp --permanent
    [root@Mike-Node1 ~]# firewall-cmd --reload
    
    ####iptables防火墙
    [root@Mike-Node1 ~]# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 5672 -j ACCEPT
    [root@Mike-Node1 ~]# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT
    [root@Mike-Node1 ~]# systemctl restart iptables

    访问管理页面

    http://IP:15672

    账号和密码默认都是guest

     

    创建管理用户

    #添加用户(用户admin,密码admin)
    [root@Mike-Node1 ~]# rabbitmqctl add_user admin admin
    Adding user "admin" ...
    
    #设置用户角色(admin为管理员)
    [root@Mike-Node1 ~]# rabbitmqctl set_user_tags admin administrator
    Setting tags for user "admin" to [administrator] ...
    
    #设置用户权限(接受来自所有Host的所有操作)
    [root@Mike-Node1 ~]# rabbitmqctl  set_permissions -p "/" admin '.*' '.*' '.*'
    Setting permissions for user "admin" in vhost "/" ...
    
    #查看用户权限
    [root@Mike-Node1 ~]# rabbitmqctl list_user_permissions admin
    Listing permissions for user "admin" ...
    vhost    configure    write    read
    /    .*    .*    .*
    [root@Mike-Node1 ~]# 

    然后使用 admin 管理员用户登录web管理页面

    用户和密码是上面添加设置的  admin admin

    RabbitMQ常用命令

    # 添加用户
    rabbitmqctl add_user <username> <password>  
    
    # 删除用户
    rabbitmqctl delete_user <username>  
    
    # 修改用户密码
    rabbitmqctl change_password <username> <newpassword>  
    
    # 清除用户密码(该用户将不能使用密码登陆,但是可以通过SASL登陆如果配置了SASL认证)
    rabbitmqctl clear_password <username> 
    
    # 设置用户tags(相当于角色,包含administrator,monitoring,policymaker,management)
    rabbitmqctl set_user_tags <username> <tag>
    
    # 列出所有用户
    rabbitmqctl list_users  
    
    # 创建一个vhosts
    rabbitmqctl add_vhost <vhostpath>  
    
    # 删除一个vhosts
    rabbitmqctl delete_vhost <vhostpath>  
    
    # 列出vhosts
    rabbitmqctl list_vhosts [<vhostinfoitem> ...]  
    
    # 针对一个vhosts给用户赋予相关权限;
    rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read>  
    
    # 清除一个用户对vhosts的权限;
    rabbitmqctl clear_permissions [-p <vhostpath>] <username>  
    
    # 列出哪些用户可以访问该vhosts;
    rabbitmqctl list_permissions [-p <vhostpath>]   
    
    # 列出用户访问权限;
    rabbitmqctl list_user_permissions <username>

    本文分享完毕,感谢支持点赞~~

  • 相关阅读:
    dw通过iis运行asp网站总结
    idea 连接mysql报错:Access denied for user 'root'@'localhost'(using password:YES)。
    idea 为模块添加Tomcat依赖 解决: Intelij IDEA 创建WEB项目时没有Servlet的jar包
    IntelliJ IDEA 高效率配置
    idea发布web项目在tomcat位置问题
    idea中HTML格式化时标签缩进问题
    IDEA 安装破解
    python中map()函数的用法讲解
    mac终端下svn常用命令
    SVN常用命令详解
  • 原文地址:https://www.cnblogs.com/mike666/p/14138125.html
Copyright © 2020-2023  润新知