Docker 部署RabbitMQ

Docker安装RabbitMQ docker安装RabbitMQ完整详细教程 端口:AMQP(Advanced Message Queuing Protocol)协议的默认端口,用于客户端与RabbitMQ服务器之间的通信。端口:RabbitMQ的管理界面,默认使用HTTP协议,用于监控和管理RabbitMQ服务器。端口:Erlang分布式节点通信端口,用于RabbitMQ节点之间的通信。端口:Erlang分布式节点通信端口,用于集群中的内部通信。端口:安全的AMQP端口,使用TLS/SSL进行加密通信。端口,访问宿主机端口的时候会映射到对应容器端口,是 容器别名,将 宿主机。 阅读详情

目录:
1.简介
2.部署RabbitMQ
3.启动RabbitMQ
4.实操消费
5.Docker搭建RabbitMQ集群

1.简介

该实例为了巩固docker知识
MQ全称Message Queue 消息队列,RabbitMQ是基于AMQP(高级消息队列协议)实现的。消息队列通常用以应用之间相互通信,解决同步问题,在项目中用到该消息队列,但是环境在服务器上(各种跳板),有时候自己测试不方便,故用docker搭建RabbitMQ本地环境,方便测试调试.
后续有关RabbitMQ的学习和深入就基于这个容器实操.

2.部署RabbitMQ

1、查询rabbitmq镜像

docker search rabbitmq:management

在这里插入图片描述
2、拉取rabbitmq镜像

docker pull rabbitmq:management

在这里插入图片描述

3.启动RabbitMQ

3.1.创建并启动容器

docker run -d --hostname my-rabbit --name rabbit -p 8080:15672 rabbitmq:management

在这里插入图片描述
ps:

--hostname:指定容器主机名称
--name:指定容器名称
-p:将mq端口号映射到本地

3.2备选启动同时设置用户和密码

docker run -d --hostname my-rabbit --name rabbit -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:management

ps: 此处的端口访问是有区别的,控制台端口用于管理rabbitmq,应用访问端口号为rabbitclient等应用访问。

15672:控制台端口号
 5672:应用访问端口号

3.3查看rabbitmq运行状况:

docker logs rabbit

3.4 访问

    http://localhost:15672

3.5 登陆
默认账号

Account  : guest
Password : guest

在这里插入图片描述

4.实操(Java)

启动Rabbit

docker run -d --hostname my-rabbit --name rabbit -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:management

ps:所用user>>> admin/admin

添加pom.xml依赖

    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client -->
        <dependency>
            <groupId>com.rabbitmq</groupId>
            <artifactId>amqp-client</artifactId>
            <version>3.6.5</version>
        </dependency>
    </dependencies>

发送端(运行发送端,连续发送两条信息到指定队列)

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.util.concurrent.TimeoutException;

/**
 * @Auther: chenyj
 * @Date: 2018/12/4 10:58
 * @Description:
 */
public class Sender {
    //队列名称
    private final static String QUEUE_NAME = "hello";

    public static void main(String[] argv)throws java.io.IOException, TimeoutException {
        ConnectionFactory factory = new ConnectionFactory();
        //Account
        factory.setUsername("admin");
        //Password
        factory.setPassword("admin");
        //rabbit所在服务器主机名
        factory.setHost("192.168.209.128");
        //应用访问端口
        factory.setPort(5672);
        //指定RabbitMQ服务器的虚拟主机
        factory.setVirtualHost("/");
        //创建连接
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        String message = "Hello World!";
        channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
        System.out.println(" [x] Sent '" + message + "'");
        channel.close();
        connection.close();
    }
}

UI查看
ps: 方才发送了两条信息
在这里插入图片描述

消费端

import com.rabbitmq.client.*;

import java.io.IOException;

/**
 * @Auther: chenyj
 * @Date: 2018/12/4 11:05
 * @Description:
 */
public class Receiver {
    //队列名称
    private final static String QUEUE_NAME = "hello";

    public static void main(String[] argv) throws Exception {
        ConnectionFactory factory = new ConnectionFactory();
        //Account
        factory.setUsername("admin");
        //Password
        factory.setPassword("admin");
        //rabbit所在服务器主机名
        factory.setHost("192.168.209.128");
        //应用访问端口
        factory.setPort(5672);
        //指定RabbitMQ服务器的虚拟主机
        factory.setVirtualHost("/");
        //连接参数
        factory.setConnectionTimeout(600000); // in milliseconds
        factory.setRequestedHeartbeat(60); // in seconds
        factory.setHandshakeTimeout(6000); // in milliseconds
        factory.setRequestedChannelMax(5);
        factory.setNetworkRecoveryInterval(500);

        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();

        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        System.out.println("Waiting for messages. ");

        Consumer consumer = new DefaultConsumer(channel) {
            @Override
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body)
                    throws IOException {
                String message = new String(body, "UTF-8");
                System.out.println(" [x] Received '" + message + "'");
            }
        };
        channel.basicConsume(QUEUE_NAME, true, consumer);
    }

}

运行上述消费者,控制台输出

Waiting for messages. 
 [x] Received 'Hello World!'
 [x] Received 'Hello World!'

此时Rabbit页面已经全部消费成功
在这里插入图片描述

5.Docker搭建RabbitMQ集群

暂时没该需求,如有用到的小伙伴可以参考一下博客
https://blog.youkuaiyun.com/belonghuang157405/article/details/83540148

docker安装RabbitMQ教程(2023年最详细) RABBITMQ_DEFAULT_USER:默认的用户名;如果需要安装其他版本在rabbitmq后面跟上版本号即可 docker pull rabbitmq:3.7.7-management。--hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);安装name为rabbitmq的这里是直接安装最新的 docker pull rabbitmq。RABBITMQ_DEFAULT_PASS:默认用户名的密码)--name 指定容器名; 阅读详情

相关推荐

使用 Docker 部署 RabbitMQ 的详细指南

RabbitMQ 是一个流行的开源消息代理软件,它实现了高级消息队列协议(AMQP)。本文将详细介绍如何使用 Docker 部署 RabbitMQ,并提供一些配置和管理的技巧。为了确保 RabbitMQ 的数据在容器重启或删除后不会丢失,我们使用了 Docker 的卷(volume)功能。RabbitMQ 容器通过指定环境变量的方式进行配置,这比修改配置文件便捷得多。为了防止数据丢失,定期备份 RabbitMQ 的数据是非常重要的。如果尚未安装,可以参考。)登录,即可访问 RabbitMQ 的管理界面。

m0_74823683的博客 1374

RabbitMQ快速入手(docker版)

ps.RMQ比较其他MQ产品更可靠,最快的是(卡夫卡)一般依靠多线程,java代码异步,RabitMQ同步。

市民景先生 1万+

Docker安装部署RabbitMQ

在开始Docker安装部署RabbitMQ之前,确保您的系统环境已经满足Docker的运行要求。以下是在不同操作系统上安装Docker的步骤和命令行演示。在基于Debian的系统(如Ubuntu)上,您可以使用以下命令来安装Docker: 安装完成后,启动Docker服务并将其设置为开机启动: 验证Docker是否正确安装: 对于macOS系统 macOS用户可以通过Docker Desktop for Mac来安装Docker。访问Docker Desktop官网下载安装包,按照安装向导完成

2493

docker安装rabbitMQ

1.rabbitMQ介绍 RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。 2. MQ介绍 MQ是一个互联网架构中常见的解耦利器。 什么时候不使用MQ? 上游实时关注执行结果 什么时候使用MQ? 1)数据驱动的任务依赖,多个任务需要轮流执行,轮流订阅上一个任务。 2)上游不关心多下游执行结果,上游执行完发..

weixin_39801446的博客 3万+

【云原生之Docker实战】使用Docker部署Rabbitmq集群

【云原生之Docker实战】使用Docker部署Rabbitmq集群

jks212454的博客 3543

FOC实战笔记:RC吸收电路的设计考量与参数调优

本文深入探讨了FOC驱动器中RC吸收电路的设计与调优。针对MOS管开关过程中的电压尖峰问题,详细阐述了RC电路的钳位与能量吸收原理,并提供了从参数计算、实验调试到布局布线的完整实战指南,旨在帮助工程师有效提升系统可靠性与稳定性。

weixin_29219539的博客 275

在docker上部署启动RabbitMQ及使用

一、docker上部署启动RabbitMQ1、查询rabbitmq镜像docker search rabbitmq:management2、拉取rabbitmq镜像docker pull rabbitmq:management3、创建并启动容器3.1创建和启动docker run -d --hostname my-rabbit --name rabbit -p 8080:15672 rabbitm...

weixin_39617052的博客 5万+

手把手教你解决Windows 10网络驱动器无法访问问题(附详细排查步骤)

本文详细指导Windows 10用户解决网络驱动器无法访问的常见问题。通过从现象快速定位到系统排查,提供了从检查网络连通性、修复凭据权限到调整高级设置的完整步骤,特别是针对“找不到网络路径”等错误,帮助用户高效恢复对共享资源的访问。

weixin_29233857的博客 517

Docker部署RabbitMQ

【前言】 Docker : Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers.[6] Containers are isolated from one another and bundle their own software, libraries and configuratio

m0_67265464的博客 3215

从零到一:基于K375S主控的机械键盘优联无线化改造实战

本文详细记录了基于罗技K375S主控进行机械键盘优联无线化改造的全过程。从改造动机、核心原理与物料准备,到电路设计、PCB打样、焊接调试,逐步拆解了将优联技术集成到自定义机械键盘中的实战步骤。项目最终实现了低延迟、高稳定性且支持多设备连接的优联无线机械键盘,为DIY爱好者提供了高性价比的改造方案。

h0i1j2k3l的博客 601

Linux 命令之 locale -- 设置和显示程序运行的语言环境

文章目录命令介绍locale 设置规则使用详解(一)查看当前 locale 设置(二)查看当前系统所有可用 locale(三)设置系统的 locale 命令介绍 locale 是 Linux 系统中多语言环境的设置接口,在 Linux 中,使用 locale 命令来设置和显示程序运行的语言环境,locale 会根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统定义一个软件运行时的语言环境。 通过 locale 来设置程序运行的不同语言环境,locale 由ANSI C提供支持。locale 的

liaowenxiong的博客 3万+

RabbitMQ(Docker 单机部署)

本文给大家介绍如何使用 Docker 单机部署 RabbitMQ 并与 SpringBoot 整合使用。

DC1020的博客 1983

46、聚类算法在智能交通数据分析中的应用

本文探讨了聚类算法在智能交通数据分析中的应用,介绍了K-均值算法、K-中心点算法和基于模型的聚类算法的基本原理及特点,并结合实际交通数据讨论了其应用场景与挑战。通过聚类分析,能够从海量交通数据中发现隐藏模式,为交通管理和规划提供科学依据。文章还展示了具体的案例分析和实现流程,为未来智能交通系统的发展提供了参考。

zz67890的博客 133

Docker安装部署RabbitMQ详解

本文全面介绍了使用Docker容器化部署RabbitMQ的完整流程与优化策略。首先阐述了容器化部署的核心优势,包括环境一致性、资源隔离和弹性伸缩能力。接着详细讲解了从环境准备、镜像拉取到容器创建的全过程,并提供了服务验证与管理界面操作指南。文章重点介绍了数据持久化与备份策略,通过数据卷和备份命令确保消息不丢失。最后分享了进阶配置技巧,包括资源限制设置和集群部署要点,帮助读者构建高可用的RabbitMQ服务。通过Docker部署RabbitMQ,开发者可以快速搭建可靠的消息队列系统,大幅提升开发和运维效率。

没事学AI的博客 2565

Burpsuite系列安全渗透--自动扫描生成h5报告

第一章简述 Burpsuite是基于Java的用于web安全的工具,能够进行爬虫、代理、编码、密码爆破等任务,并支持对XSS漏洞、文件包含等漏洞的主动扫描或被动扫描。burpsuite2.0具体分为以下11个模块: Dashboard(仪表盘)——显示任务、实践日志等。 Target(目标)——显示目标目录结构的的一个功能。 Proxy(代理)——拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。 Intruder(...

魔都虫师的博客 2890

使用Navicat连接Oracle数据库及ORA-12541: TNS: 无监听程序、ORA-28547:connection to server failed、ORA-12514:TNS报错解决方案

使用Navicat连接Oracle数据库及ORA-12541: TNS: 无监听程序、ORA-28547:connection to server failed、ORA-12514:TNS报错解决方案。

蓝多多的小仓库 5219

docker集群部署rabbitmq

进入三个节点里,执行apt-get update,执行apt-get install y vim,如果y不允许则去掉。2、docker拉取rabbitmq:docker pull rabbitmq:3.7-management。6、在任意节点添加策略:当主节点宕机,所有队列未消费的消息复制到从节点。从节点加入主节点://其他节点同理。docker集群部署rabbitmq。1、自行安装docker。

星爷的博客 670

AI人工智能领域持续学习:提升技术能力的关键

在当今科技飞速发展的时代,AI人工智能已经渗透到我们生活的方方面面。本文章的目的就是帮助大家了解在AI人工智能领域持续学习的重要性,以及如何通过持续学习来提升自己的技术能力。文章会涵盖AI的核心概念、持续学习的原理和方法、实际应用场景等方面,让大家对AI领域的持续学习有一个全面的认识。本文首先会介绍AI人工智能的核心概念,让大家对这个领域有一个初步的了解。然后详细讲解持续学习的原理和方法,通过代码示例展示如何在实际项目中实现持续学习。接着会分析AI持续学习在不同场景的应用,推荐一些学习工具和资源。

AI 原生应用开发的博客 1289

基于Docker部署RabbitMQ

1.单机部署 1.1.下载镜像 1.2.安装MQ 2.安装DelayExchange插件 2.1.下载插件 2.2.上传插件 2.3.安装插件

Java 1313

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

docker安装部署rabbitmq

docker上安装部署rabbitmq获取rabbitmq镜像创建并运行容器:查看rabbitmq运行状态 获取rabbitmq镜像 docker search rabbitmq:management docker pull rabbitmq:management 创建并运行容器: docker run -d --hostname my-rabbit --name rabbit -p 8080:1...

Taiguoaini的博客 158

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Docker 部署RabbitMQ 集群

Docker 部署 RabbitMq 集群 1.必要条件 安装Docker服务(此处不详细描述) 下载rabbitMq images (可以用国内的源进行下载会快很多) docker pull daocloud.io/library/rabbitmq 2. 启动master docker run -itd --hostname rabbitmq-5672 --name rabbitmq-...

never 338
上一篇: Hive中count,sum的使用
下一篇: shell时间操作
yjgithub
博客等级 码龄11年 53粉丝 105原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值