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

相关推荐
肖永威2 分钟前
CentOS环境上离线安装python3及相关包
linux·运维·机器学习·centos
tian2kong5 分钟前
Centos 7 修改YUM镜像源地址为阿里云镜像地址
linux·阿里云·centos
布鲁格若门9 分钟前
CentOS 7 桌面版安装 cuda 12.4
linux·运维·centos·cuda
C-cat.16 分钟前
Linux|进程程序替换
linux·服务器·microsoft
怀澈12218 分钟前
高性能服务器模型之Reactor(单线程版本)
linux·服务器·网络·c++
DC_BLOG20 分钟前
Linux-Apache静态资源
linux·运维·apache
学Linux的语莫21 分钟前
Ansible Playbook剧本用法
linux·服务器·云计算·ansible
skywalk81631 小时前
树莓派2 安装raspberry os 并修改成固定ip
linux·服务器·网络·debian·树莓派·raspberry
C++忠实粉丝1 小时前
计算机网络socket编程(3)_UDP网络编程实现简单聊天室
linux·网络·c++·网络协议·计算机网络·udp
量子网络2 小时前
debian 如何进入root
linux·服务器·debian