08-Linux部署RabbitMQ

Linux部署RabbitMQ

简介

RabbitMQ是一个开源的消息代理软件,也被称为面向消息的中间件。它实现了高级消息队列协议(AMQP),并且是用Erlang语言编写的。RabbitMQ服务器主要用于处理消息队列,这些队列遵循FIFO(先进先出)原则。

在分布式系统中,RabbitMQ常常作为一种通信方式,使得各个系统之间可以异步地、解耦地进行通信。生产者将消息发送到RabbitMQ,而消费者则从RabbitMQ中取出消息进行处理。这种通信方式允许发送方(生产者)和接收方(消费者)不需要知道对方的存在,提高了系统的灵活性和可扩展性。

RabbitMQ的优势包括:

  1. 应用解耦:通过将系统间的通信解耦,可以提高系统的容错性和可维护性。
  2. 异步提速:允许将耗时的操作异步处理,提高应用程序的响应时间和吞吐量。
  3. 削峰填谷:在请求增加时,可以平滑系统负载,提高系统稳定性。

然而,使用RabbitMQ也可能带来一些劣势,如可能降低系统的可用性和复杂度增加,以及可能的一致性问题。

RabbitMQ支持多种主要的编程语言,包括Java、Python、Ruby、PHP、C/C++等,提供了丰富的客户端库来与代理接口进行通信。此外,RabbitMQ还支持集群和故障转移,这些特性使得它在构建可靠、高性能的分布式系统时非常有用。

总的来说,RabbitMQ是一个强大且灵活的消息队列系统,它可以帮助开发者构建高性能、可扩展、可靠的分布式系统。

RabbitMQ在企业开发中十分常见,下面演示快速搭建RabbitMQ环境。

RabbitMQ官网:https://www.rabbitmq.com/

安装

rabbitmq在yum仓库中的版本比较老,所以我们需要手动构建yum仓库

  1. 准备yum仓库

    • 安装密钥
    bash 复制代码
    rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
    rpm --import https://packagecloud.io/rabbitmq/erlang/gpgkey
    rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
    • 准备仓库文件
    bash 复制代码
    vim /etc/yum.repos.d/rabbitmq.repo
    • 填入如下内容
    bash 复制代码
    ##
    ## Zero dependency Erlang
    ##
    
    [rabbitmq_erlang]
    name=rabbitmq_erlang
    baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch
    repo_gpgcheck=1
    gpgcheck=1
    enabled=1
    # PackageCloud's repository key and RabbitMQ package signing key
    gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
           https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
    sslverify=1
    sslcacert=/etc/pki/tls/certs/ca-bundle.crt
    metadata_expire=300
    
    [rabbitmq_erlang-source]
    name=rabbitmq_erlang-source
    baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS
    repo_gpgcheck=1
    gpgcheck=0
    enabled=1
    # PackageCloud's repository key and RabbitMQ package signing key
    gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
           https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
    sslverify=1
    sslcacert=/etc/pki/tls/certs/ca-bundle.crt
    metadata_expire=300
    
    ##
    ## RabbitMQ server
    ##
    
    [rabbitmq_server]
    name=rabbitmq_server
    baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch
    repo_gpgcheck=1
    gpgcheck=0
    enabled=1
    # PackageCloud's repository key and RabbitMQ package signing key
    gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
           https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
    sslverify=1
    sslcacert=/etc/pki/tls/certs/ca-bundle.crt
    metadata_expire=300
    
    [rabbitmq_server-source]
    name=rabbitmq_server-source
    baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/SRPMS
    repo_gpgcheck=1
    gpgcheck=0
    enabled=1
    gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
    sslverify=1
    sslcacert=/etc/pki/tls/certs/ca-bundle.crt
    metadata_expire=300
  2. 安装RabbitMQ(需root权限)

    bash 复制代码
    yum install erlang rabbitmq-server -y
  3. 启动(需root权限)

    bash 复制代码
    # 使用systemctl管控,服务名:rabbitmq-server
    systemctl enable rabbitmq-server		# 开机自启
    systemctl disable rabbitmq-server		# 关闭开机自启
    systemctl start rabbitmq-server			# 启动
    systemctl stop rabbitmq-server			# 关闭
    systemctl status rabbitmq-server		# 查看状态
  4. 放行防火墙,RabbitMQ使用5672、15672、25672 3个端口

    bash 复制代码
    # 方式1(推荐),关闭防火墙
    systemctl stop firewalld		# 关闭
    systemctl disable firewalld		# 关闭开机自启
    
    # 方式2,放行5672 25672端口
    firewall-cmd --add-port=5672/tcp --permanent		# 放行tcp规则下的5672端口,永久生效
    firewall-cmd --add-port=15672/tcp --permanent		# 放行tcp规则下的15672端口,永久生效
    firewall-cmd --add-port=25672/tcp --permanent		# 放行tcp规则下的25672端口,永久生效
    firewall-cmd --reload								# 重新加载防火墙规则
  5. 启动RabbitMQ的WEB管理控制台

    bash 复制代码
    rabbitmq-plugins enable rabbitmq_management
  6. 添加admin用户,并赋予权限

    bash 复制代码
    #账号admin 密码bowen
    rabbitmqctl add_user admin 'bowen'
    rabbitmqctl set_permissions -p "/" "admin" ".*" ".*" ".*"
    rabbitmqctl set_user_tags admin administrator
  7. 浏览器打开管理控制台

    http://192.168.149.130:15672/![image-20240227190137295](https://file.jishuzhan.net/article/1763032501405618177/241d7554060184aa6ab2c0ad744ebb63.webp)

  8. 创建用户bowen密码为123456

    bash 复制代码
    rabbitmqctl add_user bowen 123456
  9. 将bowen用户提升为管理员权限

    bash 复制代码
    rabbitmqctl set_user_tags bowen administrator
  10. 查看用户权限

    bash 复制代码
    rabbitmqctl list_users
  11. 删除用户

    bash 复制代码
    #示例删除bowen用户
    rabbitmqctl delete_user bowen
  12. 登录查看

    至此,RabbitMQ已经安装完成了。

相关推荐
sanggou4 小时前
Linux批量执行工具脚本使用指南:一键运行多个release-dev.sh脚本
linux·bash
牧以南歌〆8 小时前
在Ubuntu主机中修改ARM Linux开发板的根文件系统
linux·arm开发·驱动开发·ubuntu
Baklib梅梅9 小时前
Ruby大会演讲实录:Baklib 如何用 AI 重构内容管理赛道
ruby on rails·前端框架·ruby
夜月yeyue9 小时前
设计模式分析
linux·c++·stm32·单片机·嵌入式硬件
kfepiza10 小时前
Debian的`/etc/network/interfaces`的`allow-hotplug`和`auto`对比讲解 笔记250704
linux·服务器·网络·笔记·debian
cuijiecheng201811 小时前
Ubuntu下布署mediasoup-demo
linux·运维·ubuntu
独行soc13 小时前
2025年渗透测试面试题总结-2025年HW(护网面试) 33(题目+回答)
linux·科技·安全·网络安全·面试·职场和发展·护网
java龙王*13 小时前
开放端口,开通数据库连接权限,无法连接远程数据库 解决方案
linux
bcbobo21cn14 小时前
Linux命令的命令历史
linux·histsize·histfile
jingyu飞鸟15 小时前
linux系统源代码安装apache、编译隐藏版本号
linux·运维·apache