云原生之使用Docker部署RabbitMQ消息中间件

简介: 云原生之使用Docker部署RabbitMQ消息中间件

一、RabbitMQ介绍

1.RabbitMQ简介

RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于AMQP协议的。RabbitMQ是一个开源的消息代理的队列服务器,用来通过普通协议在完全不同的应用之间共享数据。

2.RabbitMQ特点

  • 开源、性能优秀,稳定性保障
  • 提供可靠性消息投递模式、返回模式
  • 与Spring AMQP完美整合,API丰富
  • 集群模式丰富,表达式配置,HA模式,镜像队列模型
  • 保证数据不丢失的前提做到高可靠性、可用性

二、检查docker状态

[root@node ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2022-10-27 13:42:27 CST; 23h ago
     Docs: https://docs.docker.com
 Main PID: 58398 (dockerd)
    Tasks: 35
   Memory: 509.4M
   CGroup: /system.slice/docker.service
           ├─58398 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
           ├─58997 /usr/bin/docker-proxy -proto udp -host-ip 0.0.0.0 -host-port 30000 -container-ip 172.17.0.2 -container-port 30000
           ├─59004 /usr/bin/docker-proxy -proto udp -host-ip :: -host-port 30000 -container-ip 172.17.0.2 -container-port 30000
           ├─59696 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8080 -container-ip 172.17.0.3 -container-port 8080
           └─59702 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8080 -container-ip 172.17.0.3 -container-port 8080

Oct 27 20:12:11 node dockerd[58398]: time="2022-10-27T20:12:11.039975761+08:00" level=info msg="Download failed, retrying (3/5): Get \"https://p...
Oct 27 20:13:32 node dockerd[58398]: time="2022-10-27T20:13:32.439216385+08:00" level=info msg="Download failed, retrying (4/5): read tc...by peer"
Oct 27 20:18:35 node dockerd[58398]: time="2022-10-27T20:18:35.005006269+08:00" level=info msg="Download failed, retrying (3/5): read tc...by peer"
Oct 27 20:19:03 node dockerd[58398]: time="2022-10-27T20:19:03.572294722+08:00" level=info msg="Download failed, retrying (4/5): Get \"https://p...
Oct 27 20:30:21 node dockerd[58398]: time="2022-10-27T20:30:21.331989742+08:00" level=info msg="Download failed, retrying (4/5): read tc...by peer"
Oct 27 20:30:54 node dockerd[58398]: time="2022-10-27T20:30:54.792611068+08:00" level=info msg="Download failed, retrying (5/5): Get \"https://p...
Oct 27 20:35:45 node dockerd[58398]: time="2022-10-27T20:35:45.815030472+08:00" level=info msg="Download failed, retrying (5/5): read tc...by peer"
Oct 27 20:37:55 node dockerd[58398]: time="2022-10-27T20:37:55.378115843+08:00" level=info msg="Download failed, retrying (5/5): read tc...by peer"
Oct 27 20:45:31 node dockerd[58398]: time="2022-10-27T20:45:31.256303716+08:00" level=error msg="Download failed after 6 attempts: read ...by peer"
Oct 27 20:45:31 node dockerd[58398]: time="2022-10-27T20:45:31.257428765+08:00" level=info msg="Attempting next endpoint for pull after ...by peer"
Hint: Some lines were ellipsized, use -l to show in full.

三、下载RabbitMQ镜像

[root@node ~]# docker pull bitnami/rabbitmq
Using default tag: latest
latest: Pulling from bitnami/rabbitmq
0796bf144e3f: Pull complete 
0aa278e6d559: Pull complete 
f37134480d36: Pull complete 
3ca5a05c65cf: Pull complete 
88bb7bc42515: Pull complete 
d707818752e6: Pull complete 
b8a937a01956: Pull complete 
efb772451b7f: Pull complete 
db7fe513e59c: Pull complete 
0d37a623156d: Pull complete 
2e1d8d64104c: Pull complete 
1bc67f22006e: Pull complete 
891457114828: Pull complete 
1161d96f1d40: Pull complete 
Digest: sha256:a45676c71cf551fe942245b7ae133f9fd09f6278bb53fa98e18a00cf6abdbd90
Status: Downloaded newer image for bitnami/rabbitmq:latest
docker.io/bitnami/rabbitmq:latest

四、创建RabbitMQ容器

1.创建数据目录

[root@node ~]# mkdir -p /data/rabbitmq/data
[root@node ~]# chmod -R 777 /data/rabbitmq/data

2.运行RabbitMQ容器

[root@node rabbitmq]# docker run -d --name rabbitmq --restart always  -v /data/rabbitmq/data:/bitnami   -e RABBITMQ_USERNAME=admin -e RABBITMQ_PASSWORD=admin    -p 5672:5672 -p 15672:15672       bitnami/rabbitmq:latest
9631983cebc690761d3cda187ea85383ffef0005045e7a60e4a527ceb1c419ef


3.查看RabbitMQ容器状态

[root@node rabbitmq]# docker ps
CONTAINER ID   IMAGE                                  COMMAND                  CREATED          STATUS          PORTS                                                                                                                                               NAMES
9631983cebc6   bitnami/rabbitmq:latest                "/opt/bitnami/script…"   18 seconds ago   Up 18 seconds   4369/tcp, 5551-5552/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, :::5672->5672/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp, :::15672->15672/tcp   rabbitmq


五、进入RabbitMQ登录页

image.png

六、登录RabbitMQ首页

image.png

相关实践学习
快速体验阿里云云消息队列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
相关文章
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
825 2
|
12月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
865 2
|
消息中间件 监控 RocketMQ
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
2238 91
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
就这样,你成功地用魔法召唤出了RabbitMQ,还把它和你的应用程序连接了起来。现在,消息会像小溪流水一样,在你的系统中自由流淌。别忘了,兔子们不喜欢孤独,他们需要你细心的关怀,不时地监控它们,确保他们的世界运转得井井有条。
852 18
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
999 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
消息中间件 存储 Cloud Native
基于 RocketMQ 的云原生 MQTT 消息引擎设计
基于 RocketMQ 的云原生 MQTT 消息引擎设计
822 1
|
消息中间件 存储 Java
吃透 RocketMQ 消息中间件,看这篇就够了!
本文详细介绍 RocketMQ 的五大要点、核心特性及应用场景,涵盖高并发业务场景下的消息中间件关键知识点。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
吃透 RocketMQ 消息中间件,看这篇就够了!
|
安全 Cloud Native Shell
云上攻防:云原生篇&Docker容器逃逸
本文介绍了Docker的基本概念及其对渗透测试的影响,重点讲解了容器逃逸的方法。Docker是一种轻量级的容器技术,与虚拟机相比,具有更高的便携性和资源利用率。然而,这也带来了安全风险,特别是容器逃逸问题。文章详细描述了三种常见的容器逃逸方法:不安全的配置、相关程序漏洞和内核漏洞,并提供了具体的检测和利用方法。此外,还介绍了几种特定的漏洞(如CVE-2019-5736和CVE-2020-15257)及其复现步骤,帮助读者更好地理解和应对这些安全威胁。
1854 3
云上攻防:云原生篇&Docker容器逃逸
|
消息中间件 编解码 Docker
【Docker项目实战】Docker部署RabbitMQ消息中间件
【10月更文挑战第8天】Docker部署RabbitMQ消息中间件
1179 2
【Docker项目实战】Docker部署RabbitMQ消息中间件

相关产品

  • 云消息队列 MQ