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已经安装完成了。

相关推荐
茫忙然12 分钟前
U 盘搭建免驱 Linux 便携系统教程
linux·服务器
一起逃去看海吧1 小时前
dify-03
java·linux·开发语言
fengyehongWorld1 小时前
Linux 根据端口进行的相关查询
linux
lihao lihao1 小时前
linux匿名管道
linux·运维·服务器
うちは止水2 小时前
weston出图调试
linux·wayland·weston
STDD2 小时前
Farming Simulator 25(模拟农场 25) Linux 专服搭建完全指南
linux·运维·javascript
好好风格2 小时前
宝塔面板 HTTPS 端口证书不生效排查记录
linux·运维·nginx
用户2367829801683 小时前
Linux pgrep 命令详解:按名称查找进程 PID 的高效方法
linux
zzipeng3 小时前
Linux LCD驱动
linux·运维·服务器