入职必会-开发环境搭建52-RabbitMQ安装

简介: RabbitMQ 是一款开源的消息队列软件,最初由 LShift 公司开发,后来成为 Pivotal Software(现在是 VMware 的一部分)的一部分。它是基于 AMQP(高级消息队列协议)标准的消息中间件,旨在帮助不同应用程序之间进行可靠的数据传输和通信。RabbitMQ 提供了高度灵活的消息队列机制,可以在分布式环境中实现应用程序之间的异步通信。它支持多种消息传递模式,包括点对点、发布/订阅、请求/响应等,能够满足各种复杂的消息通信需求。

RabbitMQ介绍

RabbitMQ 是一款开源的消息队列软件,最初由 LShift 公司开发,后来成为 Pivotal Software(现在是 VMware 的一部分)的一部分。它是基于 AMQP(高级消息队列协议)标准的消息中间件,旨在帮助不同应用程序之间进行可靠的数据传输和通信。

RabbitMQ 提供了高度灵活的消息队列机制,可以在分布式环境中实现应用程序之间的异步通信。它支持多种消息传递模式,包括点对点、发布/订阅、请求/响应等,能够满足各种复杂的消息通信需求。

作为一种可靠的消息代理,RabbitMQ 提供了持久化、传输确认、发布者确认等机制,确保消息在传输过程中的可靠性和稳定性。此外,RabbitMQ 还提供了灵活的插件系统,可以扩展其功能以满足特定的业务需求。

RabbitMQ 被广泛应用于构建分布式系统、微服务架构和事件驱动的应用程序中,为开发者提供了一个可靠、健壮的消息传递解决方案。它具有良好的可扩展性和高性能,能够处理大规模的消息流量,并且易于集成到各种现有的应用系统中。

总的来说,RabbitMQ 是一款功能强大的消息队列软件,为构建分布式系统和解耦应用程序提供了可靠的消息传递基础设施,受到广泛的欢迎和应用。

Docker安装RabbitMQ

Docker安装RabbitMQ介绍

RabbitMQ是用Erlang编写的,安装时需要注意 RabbityMQ 所依赖的 Erlang 版本,安装比较麻烦,建议使用Docker安装RabbitMQ,安装简单。

Docker安装RabbitMQ步骤:

  1. 拉取镜像
  2. 创建并运行容器
  3. 宿主机访问RabbitMQ控制台

Docker安装RabbitMQ详细步骤

拉取镜像

命令说明:

# 拉取RabbitMQ镜像
docker pull rabbitmq:3.8-management

操作示例:

[root@192 conf]# docker pull rabbitmq:3.8-management
3.8-management: Pulling from library/rabbitmq
d7bfe07ed847: Pull complete 
a8249261ea33: Pull complete 
a6308381df18: Pull complete 
626529a25d27: Pull complete 
20919addf7c9: Pull complete 
c61a1fb2610f: Pull complete 
1f73e996a37b: Pull complete 
90d8751c13b1: Pull complete 
8fe6b167bcbe: Pull complete 
Digest: sha256:4206c16c09a58d0a604668e91227c32f4a222368e796bfb7bf2e0d0d160ef97a
Status: Downloaded newer image for rabbitmq:3.8-management
docker.io/library/rabbitmq:3.8-management
[root@192 conf]#

创建并运行容器

命令说明:

# 创建RabbitMQ容器, 15672: web管理的端口, 5672: 客户端连接操作端口
# RABBITMQ_DEFAULT_USER:RabbitMQ服务器默认账号
# RABBITMQ_DEFAULT_PASS:RabbitMQ服务器默认密码
docker run -di --name=crabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:3.8-management
# 查看日志
docker logs -f crabbitmq
# 相关命令
docker ps 查看docker容器
docker start crabbitmq 启动
docker stop crabbitmq 暂停
docker restart crabbitmq 重启
docker logs -f crabbitmq 查看启动日志

操作示例:

[root@192 conf]# docker run -di --name=crabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:3.8-management
8b83fb928f7e70a8f86f86de9f32617efe052ca92a08349a83bb40dcef8769a2
[root@192 conf]# docker ps
CONTAINER ID   IMAGE                     COMMAND                  CREATED          STATUS          PORTS                                                                                                                                                                                                                                                                               NAMES
8b83fb928f7e   rabbitmq:3.8-management   "docker-entrypoint.s…"   34 seconds ago   Up 33 seconds   4369/tcp, 0.0.0.0:1883->1883/tcp, :::1883->1883/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, :::5672->5672/tcp, 15671/tcp, 0.0.0.0:15672->15672/tcp, :::15672->15672/tcp, 0.0.0.0:25672->25672/tcp, :::25672->25672/tcp, 0.0.0.0:61613->61613/tcp, :::61613->61613/tcp, 15691-15692/tcp   crabbitmq
[root@192 conf]# docker logs -f crabbitmq
WARNING: 'docker-entrypoint.sh' generated/modified the RabbitMQ configuration file, which will no longer happen in 3.9 and later! (https://github.com/docker-library/rabbitmq/pull/424)
Generated end result, for reference:
------------------------------------
loopback_users.guest = false
listeners.tcp.default = 5672
default_pass = admin
default_user = admin
management.tcp.port = 15672
------------------------------------
Configuring logger redirection
2024-03-28 06:39:30.833 [debug] <0.288.0> Lager installed handler error_logger_lager_h into error_logger
2024-03-28 06:39:30.846 [debug] <0.291.0> Lager installed handler lager_forwarder_backend into error_logger_lager_event
2024-03-28 06:39:30.846 [debug] <0.306.0> Lager installed handler lager_forwarder_backend into rabbit_log_federation_lager_event
2024-03-28 06:39:30.846 [debug] <0.294.0> Lager installed handler lager_forwarder_backend into rabbit_log_lager_event
2024-03-28 06:39:30.846 [debug] <0.297.0> Lager installed handler lager_forwarder_backend into rabbit_log_channel_lager_event
2024-03-28 06:39:30.846 [debug] <0.300.0> Lager installed handler lager_forwarder_backend into rabbit_log_connection_lager_event
2024-03-28 06:39:30.846 [debug] <0.303.0> Lager installed handler lager_forwarder_backend into rabbit_log_feature_flags_lager_event
2024-03-28 06:39:30.846 [debug] <0.309.0> Lager installed handler lager_forwarder_backend into rabbit_log_ldap_lager_event
2024-03-28 06:39:30.847 [debug] <0.312.0> Lager installed handler lager_forwarder_backend into rabbit_log_mirroring_lager_event
2024-03-28 06:39:30.848 [debug] <0.315.0> Lager installed handler lager_forwarder_backend into rabbit_log_prelaunch_lager_event
2024-03-28 06:39:30.850 [debug] <0.318.0> Lager installed handler lager_forwarder_backend into rabbit_log_queue_lager_event
2024-03-28 06:39:30.852 [debug] <0.321.0> Lager installed handler lager_forwarder_backend into rabbit_log_ra_lager_event
2024-03-28 06:39:30.853 [debug] <0.324.0> Lager installed handler lager_forwarder_backend into rabbit_log_shovel_lager_event
2024-03-28 06:39:30.853 [debug] <0.327.0> Lager installed handler lager_forwarder_backend into rabbit_log_upgrade_lager_event
2024-03-28 06:39:30.872 [info] <0.44.0> Application lager started on node rabbit@8b83fb928f7e
2024-03-28 06:39:31.177 [info] <0.44.0> Application mnesia started on node rabbit@8b83fb928f7e
2024-03-28 06:39:31.178 [info] <0.273.0> 
 Starting RabbitMQ 3.8.34 on Erlang 24.3.4.1 [jit]
 Copyright (c) 2007-2022 VMware, Inc. or its affiliates.
 Licensed under the MPL 2.0. Website: https://rabbitmq.com
  ##  ##      RabbitMQ 3.8.34
  ##  ##
  ##########  Copyright (c) 2007-2022 VMware, Inc. or its affiliates.
  ######  ##
  ##########  Licensed under the MPL 2.0. Website: https://rabbitmq.com
  Erlang:      24.3.4.1 [jit]
  TLS Library: OpenSSL - OpenSSL 1.1.1o  3 May 2022
  Doc guides:  https://rabbitmq.com/documentation.html
  Support:     https://rabbitmq.com/contact.html
  Tutorials:   https://rabbitmq.com/getstarted.html
  Monitoring:  https://rabbitmq.com/monitoring.html
  Logs: <stdout>
  Config file(s): /etc/rabbitmq/rabbitmq.conf
  省略其他...

宿主机访问RabbitMQ控制台

在创建容器时,指定了RabbitMQ的默认账号是admin,密码是admin。

在宿主机浏览器中访问:http://LinuxIP:15672/

添加用户和配置虚拟主机Virtual Hosts

添加用户

除了默认的用户,还可以新建用户,操作如下图:

角色说明

用户角色分为6类,超级管理员, 监控者, 策略制定者, 普通管理者,模仿者,以及其他。

  1. Admin(超级管理员)

可以登陆管理控制台,可以查看所有的信息,并且可以对用户,策略进行操作。

  1. Monitoring(监控者)

可以登陆管理控制台,可以查看RabbitMQ节点的相关信息。

  1. Policymaker(策略制定者)

可以登陆管理控制台,可以对policy进行管理。但无法查看节点的相关信息。

  1. Management(普通管理者)

可以登陆管理控制台,无法看到节点信息,也无法对策略进行管理

  1. Impersonator(模仿者)

不能登录后台,通常就是普通的生产者和消费者。

  1. none(其他)

不能登录后台,通常就是普通的生产者和消费者。

刚创建的用户是没有配置虚拟主机的。

创建虚拟主机Virtual Hosts

RabbitMQ的Virtual Host(虚拟消息服务器),每个Virtual Host相当于一个相对独立的RabbitMQ服务器;每个Virtual Host之间是相互隔离的,exchange、queue、message不能互通。

RabbitMQ和MySQL来类比:RabbitMQ相当于MySQL,RabbitMQ中的Virtual Host就相当于MySQL中的一个库。

创建虚拟主机Virtual Hosts,操作如下图:

设置用户的虚拟主机

设置用户的虚拟主机,操作如下图:

到此,完成了添加用户,创建虚拟主机,设置用户的虚拟主机。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
4月前
|
消息中间件 Linux API
centos7 安装rabbitmq自定义版本及配置
centos7 安装rabbitmq自定义版本及配置
|
5月前
|
消息中间件 存储 Linux
RabbitMQ安装及配套Laravel使用
RabbitMQ安装及配套Laravel使用
118 4
|
2月前
|
消息中间件 数据安全/隐私保护 Docker
Docker安装rabbitmq
如何使用Docker安装和配置RabbitMQ服务,包括拉取RabbitMQ镜像、创建容器、配置持久化和访问管理界面的步骤。
173 0
Docker安装rabbitmq
|
3月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
3月前
|
消息中间件 Linux
centos7安装rabbitmq
centos7安装rabbitmq
|
4月前
|
消息中间件 Docker 容器
消息中间件RabbitMQ---Docker安装RabbitMQ、以及RabbitMQ的基本使用【二】
这篇文章提供了RabbitMQ的安装和基本使用教程,包括如何使用Docker拉取RabbitMQ镜像、创建容器、通过浏览器访问管理界面,以及如何创建交换机、队列、绑定和使用direct、fanout和topic三种类型的交换器进行消息发布和接收的测试。
消息中间件RabbitMQ---Docker安装RabbitMQ、以及RabbitMQ的基本使用【二】
|
3月前
|
消息中间件 Linux
linux之centos安装rabbitmq
linux之centos安装rabbitmq
|
4月前
|
存储 Ubuntu 安全
在Ubuntu 16.04上安装和保护Mosquitto MQTT消息代理的方法
在Ubuntu 16.04上安装和保护Mosquitto MQTT消息代理的方法
116 1
|
4月前
|
Linux 数据安全/隐私保护 Docker
MQTT(EMQX) - Linux CentOS Docker 安装
MQTT(EMQX) - Linux CentOS Docker 安装
324 0
|
5月前
|
消息中间件 PHP 数据安全/隐私保护
docker安装rabbitmq并配置hyperf使用
通过以上步骤,您可以实现在Docker容器中安装和配置RabbitMQ,并在PHP的Hyperf框架中进行集成和使用。这种方式为开发者提供了快速部署并实现消息队列解决方案的能力,同时维持了环境与生产环境的一致性,从而为开发高效的分布式应用程序提供了便利。
100 3
docker安装rabbitmq并配置hyperf使用
下一篇
DataWorks