CentOS7.X安装RabbitMQ-3.6.10

简介: CentOS7.X安装RabbitMQ-3.6.10

我的个人网站

CentOS7.0安装RabbitMQ

  1. 安装前的准备

    yum install \
    m4 \
    vim \
    wget \
    gcc \
    gcc-c++ \
    make \
    cmake \
    automake \
    autoconf \
    readline \
    kernel-devel \
    ncurses-devel \
    openssl-devel \
    unixODBC-deve \
    readline-devel \
    librabbitmq-devel \
    -y \
  2. 源码安装erlang

    erlang下载

    erlang-20.0

    cd /root
    wget http://erlang.org/download/otp_src_20.0.tar.gz
    tar -zxvf otp_src_20.0.tar.gz
    cd otp_src_20.0
    ./configure \
    --prefix=/usr/local/erlang \
    --without-javac \
    make
    make install
  3. 加入环境变量

    vim /etc/profile
    
    export PATH=$PATH:/usr/local/erlang/bin
    
    ESC
    :wq
    
    source /etc/profile
  4. 测试启动erlang

    /usr/local/erlang/bin/erl
    
    # 显示Eshell V8.2  (abort with ^G)
    # 输入:
    1>9+7.
    16
    # 退出:
    2>halt().
  5. 安装RabbitMQ
    下载地址

    进入下载地址,找到|Binary .tar.xz .zip|
    
    cd /root
    wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-generic-unix-3.6.10.tar.xz
    xz -d rabbitmq-server-generic-unix-3.6.10.tar.xz
    tar -xvf rabbitmq-server-generic-unix-3.6.10.tar
    cp -r /root/rabbitmq_server-3.6.10 /usr/local/rabbitmq
  6. 添加配置文件
    配置参考

    vim /usr/local/rabbitmq/etc/rabbitmq/rabbitmq.config
    
    [{rabbit,[{tcp_listeners,[5672]}]}].
    
    ESC
    :wq
  7. 加入环境变量

    vim /etc/profile
    
    export RABBITMQ_HOME=/usr/local/rabbitmq
    export PATH=$PATH:/usr/local/rabbitmq/sbin
    
    ESC
    :wq
    
    source /etc/profile
  8. 启动RabbitMQ

    /usr/local/rabbitmq/sbin/rabbitmq-server -detached
  9. 开机启动RabbitMQ

    vim /etc/rc.local
    
    /usr/local/rabbitmq/sbin/rabbitmq-server -detached
    
    ESC
    :wq
  10. 安装php-amqp扩展前准备: 安装rabbitmq-c
    参考链接

    cd /root
    wget https://github.com/alanxz/rabbitmq-c/archive/v0.8.0.tar.gz
    tar -zxvf v0.8.0.tar.gz
    cd rabbitmq-c-0.8.0
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c-0.8.0
    make
    make install
  11. 添加用户并授权

    # 创建用户
    rabbitmqctl add_user rabbitmq '12345678'
    
    # 添加用户[管理员]标签
    rabbitmqctl set_user_tags rabbitmq administrator
    
    # 创建virtual host
    rabbitmqctl add_vhost /vhost1
    
    # 为用户授权可以访问的[virtual host]和操作类型[配置、读、写]
    rabbitmqctl set_permissions -p /vhost1 rabbitmq '.*' '.*' '.*'
    
    # 启用rabbitmq_management
    rabbitmq-plugins enable rabbitmq_management

RabbitMQ权限

  1. RabbitMQ角色权限

    # 角色列表:
    none、management、policymaker、monitoring、administrator
    
    # 角色权限:
    【none】
    不能访问 management_plugin(图形管理界面)
    
    【management】(单一virtual hosts用户)
    用户可以通过AMQP做的任何事外加:
    列出自己可以通过AMQP登入的virtual hosts  
    查看自己的virtual hosts中的queues, exchanges 和 bindings
    查看和关闭自己的channels 和 connections
    查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动
    
    【policymaker】
    management可以做的任何事外加:
    查看、创建和删除自己的virtual hosts所属的policies和parameters
    
    【monitoring】(监控用户)
    management可以做的任何事外加:
    列出所有virtual hosts,包括他们不能登录的virtual hosts
    查看其他用户的connections和channels
    查看节点级别的数据如clustering和memory使用情况
    查看真正的关于所有virtual hosts的全局的统计信息
    
    【administrator】(全权用户)
    policymaker和monitoring可以做的任何事外加:
    创建和删除virtual hosts
    查看、创建和删除users
    查看创建和删除permissions
    关闭其他用户的connections

RabbitMQ管理参考链接

  1. rabbitmq-plugins命令详解

    # 格式:
    rabbitmq-plugins <command> [<command options>]
    
    # 显示所有的的插件 -v:显示插件版本 -m:显示插件名称 -E:显示明确已经开启的插件 -e:显示明确和后台开启的插件
    rabbitmq-plugins list [-v|-m] [-E|-e] [<pattern>]
    
    # 启用插件
    rabbitmq-plugins enable <plugin1> <plugin2> ... <plugin_n>
    
    # 禁用插件
    rabbitmq-plugins disable <plugin1> <plugin2> ... <plugin_n>
    
    # 启用所有插件
    rabbitmq-plugins enable \
    amqp_client \
    cowboy \
    cowlib \
    rabbitmq_amqp1_0 \
    rabbitmq_auth_backend_ldap \
    rabbitmq_auth_mechanism_ssl \
    rabbitmq_consistent_hash_exchange \
    rabbitmq_event_exchange \
    rabbitmq_federation \
    rabbitmq_federation_management \
    rabbitmq_jms_topic_exchange \
    rabbitmq_management \
    rabbitmq_management_agent \
    rabbitmq_management_visualiser \
    rabbitmq_mqtt \
    rabbitmq_recent_history_exchange \
    rabbitmq_sharding \
    rabbitmq_shovel \
    rabbitmq_shovel_management \
    rabbitmq_stomp \
    rabbitmq_top \
    rabbitmq_tracing \
    rabbitmq_trust_store \
    rabbitmq_web_dispatch \
    rabbitmq_web_stomp \
    rabbitmq_web_stomp_examples \
    sockjs \
  2. rabbitmqctl命令全解(CLI模式管理)

    # 格式:
    rabbitmqctl [-n <node>] [-q] <command> [<command options>]
    
    # 【基本命令】
    
    # 停止运行rabbitmq
    rabbitmqctl stop <pid_file>
    
    # 停止运行rabbitmq上的应用
    rabbitmqctl stop_app
    
    # 等待rabbitmq服务启动
    rabbitmqctl wait <pid_file>
    
    # 初始化node状态(要先执行rabbitmqctl stop_app)
    rabbitmqctl reset
    
    # 强制初始化node状态
    rabbitmqctl force_reset
    
    # 轮转日志文件
    rabbitmqctl rotate_logs <suffix>
    
    # 【cluster集群管理】
    
    # 默认node以disc node加入集群,--ram表示node以ram node加入集群中(要先执行rabbitmqctl stop_app)
    rabbitmqctl join_cluster <node name> --ram
    
    # 显示cluster中的所有node
    rabbitmqctl cluster_status
    
    # 改变一个cluster中node的模式,该节点在转换前必须先停止,不能把一个集群中唯一的disk node转化为ram node
    rabbitmqctl change_cluster_node_type disc | ram
    
    # 远程移除cluster中的一个node,前提是该node必须处于offline状态,如果是online状态,则需要加--offline参数。
    rabbitmqctl forget_cluster_node --offline
    
    # 远程更新cluster中的node
    rabbitmqctl update_cluster_nodes clusternode
    
    # 同步镜像队列
    rabbitmqctl sync_queue queue
    
    # 取消同步镜像队列
    rabbitmqctl cancel_sync_queue queue 
    
    # 【用户管理】
    
    # 添加rabbitmq用户
    rabbitmqctl add_user <username> <password>
    
    # 删除rabbitmq用户
    rabbitmqctl delete_user <username>
    
    # 改变rabbitmq用户密码
    rabbitmqctl change_password <username> <newpassword>
    
    # 清除用户密码,禁止用户登录
    rabbitmqctl clear_password <username>
    
    # 设置用户标签
    rabbitmqctl set_user_tags <username> <tag1> <tag2> ... <tag_n>
    
    # 列出用户
    rabbitmqctl list_users
    
    # 创建一个vhosts
    rabbitmqctl add_vhost <vhostpath>
    
    # 删除一个vhosts
    rabbitmqctl delete_vhost <vhostpath>
    
    # 列出vhosts
    rabbitmqctl list_vhosts <vhostinfoitem1> <vhostinfoitem2> ... <vhostinfoitem_n>
    
    # 针对一个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>
    
    # 修改vhost路径参数
    rabbitmqctl set_parameter [-p <vhostpath>] <component_name> <key> <value>
    
    # 清除vhost路径参数
    rabbitmqctl clear_parameter [-p <vhostpath>] <component_name> <key>
    
    # 列出vhost路径参数
    rabbitmqctl list_parameters [-p <vhostpath>]
    
    # 【策略policy管理】
    
    # name:策略名称 pattern:匹配资源正则表达式 apply-to:策略应用类型范围,有[all、queues、exchange] priority:整数优先级 definition:json格式设置的策略
    rabbitmqctl set_policy [-p <vhostpath>] [--priority <priority>] [--apply-to <apply-to>] <name> <pattern> <definition(json)>
    
    #清除一个策略
    rabbitmqctl clear_policy [-p <vhostpath>] <name>
    
    # 列出已有的策略
    rabbitmqctl list_policies [-p <vhostpath>]
    
    # 【queues exchanges】
    
    # 返回queue的信息,如果省略了-p参数,则默认显示的是"/"vhosts的信息。
    rabbitmqctl list_queues [-p <vhostpath>] [<queueinfoitem> ...]
    
    # 返回exchange的信息
    rabbitmqctl list_exchanges [-p <vhostpath>] [<exchangeinfoitem> ...]
    
    # 返回绑定信息
    rabbitmqctl list_bindings [-p <vhostpath>] [<bindinginfoitem> ...]
    
    # 返回链接信息
    rabbitmqctl list_connections [<connectioninfoitem> ...]
    
    # 返回目前所有的channels
    rabbitmqctl list_channels [<channelinfoitem> ...]
    
    # 返回consumers
    rabbitmqctl list_consumers [-p <vhostpath>]
    
    # 显示broker的状态
    rabbitmqctl status
    
    # 显示环境参数的信息
    rabbitmqctl environment
    
    # 返回一个服务状态report
    rabbitmqctl report
    
    # 返回一个服务状态eval
    rabbitmqctl eval <expr>
  3. rabbitmqctl管理方式

    # 启用rabbitmq_management
    rabbitmq-plugins enable rabbitmq_management
    # (不成功则先执行:rabbitmqctl start_app)
    
    # web访问:
    http://[ip]:15672
    
    # api访问:
    http://[ip]:15672/api
    
    # cli访问:
    http://[ip]:15672/cli
  4. 领支付宝红包支持作者

    扫码领支付宝红包

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
2月前
|
存储 Ubuntu Linux
VMware-安装CentOS系统教程及安装包
虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
649 69
|
1月前
|
存储 分布式计算 Linux
安装篇--CentOS 7 虚拟机安装
VMware 装 CentOS 7 不知道从哪下手?这篇超详细图文教程手把手教你在 VMware Workstation 中完成 CentOS 7 桌面系统的完整安装流程。从 ISO 镜像下载、虚拟机配置,到安装图形界面、设置用户密码,每一步都有截图讲解,适合零基础新手快速上手。装好之后无论你是要搭 Hadoop 集群,还是练 Linux ,这个环境都够你折腾一整天!
716 2
|
2月前
|
Ubuntu Linux 索引
Centos 7、Debian及Ubuntu系统中安装和验证tree命令的指南。
通过上述步骤,我们可以在CentOS 7、Debian和Ubuntu系统中安装并验证 `tree`命令。在命令行界面中执行安装命令,然后通过版本检查确认安装成功。这保证了在多个平台上 `tree`命令的一致性和可用性,使得用户无论在哪种Linux发行版上都能使用此工具浏览目录结构。
301 78
|
1月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
362 16
|
3月前
|
Linux 网络安全 Apache
针对在Centos/Linux安装Apache过程中出现的常见问题集锦
以上每个问题的解决方案应深入分析错误日志、系统消息和各种配置文件,以找到根本原因并加以解决。务必保持系统和Apache软件包更新到最新版本,以修复已知的bugs和安全漏洞。安装和管理Web服务器是一项需要细致关注和不断学习的任务。随着技术的发展,推荐定期查看官方文档和社区论坛,以保持知识的更新。
205 80
|
2月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
233 10
|
3月前
|
人工智能 数据挖掘 Linux
Centos安装Python3.7(亲测可用)
本指南详细介绍了在基于Linux(以CentOS系统为例,使用yum包管理器)的系统上安装Python 3.7版本的完整流程。Python是一种广泛使用的高级编程语言,在各种领域如软件开发、数据分析、人工智能和区块链开发等都有着重要的应用。
377 2
|
2月前
|
运维 网络协议 Linux
CentOS下Bind服务的安装与故障排查
通过以上的步骤,您应该能够在CentOS系统上安装并配置BIND DNS服务,并进行基本的故障排查。
238 0
|
4月前
|
机器人 Linux
CentOS 7系统中安装特定版本CMake 3.21.2的方法。
到这里,过程已经全部完成。如果你跟随上面的步骤来,那么你现在已经拥有了一个全新的CMake版本在你的CentOS 7系统上了。这个过程就像是你通过一系列仪式,唤醒了一个沉睡已久的古老机器人,它现在完全按照你的意愿来帮你构建和编译软件了。
353 18
|
3月前
|
物联网 Linux 开发者
快速部署自己私有MQTT-Broker-下载安装到运行不到一分钟,快速简单且易于集成到自己项目中
本文给物联网开发的朋友推荐的是GMQT,让物联网开发者快速拥有合适自己的MQTT-Broker,本文从下载程序到安装部署手把手教大家安装用上私有化MQTT服务器。
1060 5