rabbitMq docker安装以及简单使用(springboot)

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 指定容器名; 阅读详情

RabbitMQ 核心名词简介

Publisher:消息生产者

Exchange: 交换器,用来接收生产者发送的消息并将这些消息根据路由键和队列的绑定关系路由给服务器中的队列

Exchange有4种类型:direct(默认),fanout, topic, 和headers:

  diract: 完全匹配策略,交换器的路由键key必须和binding中的路由key完全一直,才能发送消息到对应的消息队列,点对点模式;

fanout: 广播策略,不进行路由键的匹配,把消息发送给所有绑定了该交换器的队列,由于不进行路由键的匹配处理,速度最快

topic: 通配符匹配主题策略, 交换器通过模式匹配分配消息的路由键属性,将路由键和某个模式进行匹配,此时队列需要绑定到一个模式上。它将路由键和绑定键的字符串切分成单词,这些单词之间用点隔开。它同样也会识别两个通配符:符号“#”和符号“*”。#匹配0个或多个单词,*匹配一个单词

headers: 基本不用,匹配的是消息内的header,不是匹配的路由键,性能很差

Queue:消息队列

Binding:绑定关系,用来表示绑定交换器和队列的关联,一个交换器能指定多个队列,也可以是多对多的关系

路由键: 通过路由键的key来匹配到交换器和队列的绑定关系

Channel :

多路复用连接中的一条独立的双向数据流通道。信道是建立在真实的TCP连接内的虚拟连接,AMQP 命令都是通过信道发出去的,不管是发布消息、订阅队列还是接收消息,这些动作都是通过信道完成。因为对于操作系统来说建立和销毁 TCP 都是非常昂贵的开销,所以引入了信道的概念,以复用一条 TCP 连接。

Consumer:消息消费者

Virtual Host  :虚拟主机,表示一批交换器、消息队列和相关对象。虚拟主机是共享相同的身份认证和加密环境的独立服务器域。每个 vhost 本质上就是一个 mini 版的 RabbitMQ 服务器,拥有自己的队列、交换器、绑定和权限机制。vhost 是 AMQP 概念的基础,必须在连接时指定,RabbitMQ 默认的 vhost 是 / 。

Broker: 表示消息队列服务器实体,就是一个rabbitmq服务器

1. 使用docker 简单安装 

拉取镜像文件

(如果没配置国内镜像 则使用registry.docker-cn.com/library/rabbitmq 配置了国内镜像地址则直接使用 rabbitmq) 

docker pull registry.docker-cn.com/library/rabbitmq

启动

docker -d --name myrabbitmq -p 5672:5672 -p 15672:15672  registry.docker-cn.com/library/rabbitmq

配置访问web页面

  进入容器

docker exec -it  b198e5bff969 /bin/bash

启动web管理模块命令如下(另外rabbitmq好多命令 ,百度下就可以知道)
rabbitmqctl start_app
rabbitmq-plugins enable rabbitmq_management

访问  ip:15672

账号密码 guest  : guest

使用springboot 集成使用 

springboot 中的 amqpAdmin 封装了对交换器,队列等的系统操作,rabbitmqTemplate 封装了对消息的发送接受处理

添加依赖

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-amqp</artifactId>
		</dependency>

配置 rabbitmq地址

编写配置类

/**
 * Created by Administrator on 2018/11/30.
 *自动配置类 RabbitAutoConfiguration
 *    里面注入了  rabbitTamplate   CachingConnectionFactory  RabbitConnectionFactoryBean
 *      AmqpAdmin 系统管理组件
 *  RabbitProperties 封装了rabbitmq 配置
 *@EnableRabbit  // 开启rabbitmq 的自动配置
 */
@EnableRabbit  // 开启rabbitmq 的自动配置
@Configuration
public class MyRabbitmqConfig {


}

手动在页面添加一个交换器exchanges

direct 策略的交换器

fanout 策略的交换器

topic 策略的交换器

添加 消息队列

绑定交换器和消息队列

编写消息发送服务者 代码

    @Test
    public void send() {
        // 路由键默认等于队列名称
        Map map = new HashMap();
        map.put("123","123");
        map.put("lists",new int[]{1,2,3});
        rabbitTemplate.convertAndSend("xiaodu.direct","key01",map);
    }

 

查看rabbitmq管理页面

 

如果传输的是对象则消息是对象序列化后的结果

 

接受代码

    @Test
    public void receive() {
//        参数为队列的名称  ,另外接受到的消息能自动反序列化回来,(注意实现序列化接口)
//        消息取出来会自动删除
        Object o = rabbitTemplate.receiveAndConvert("xiaodu.queue01");
        System.out.println("接受到消息为==" + o);
    }

序列化规则

在springboot中自动使用的是SimpleMessageConverter默认是jdk的序列化规则

使用转换为json的messageConverter,在配置类中配置

  

使用后效果消息体中的内容Payload 是json类型的,而不是存储的对象序列化后的结果

测试广播模式:广播模式不用指定路由键,但是记得把交换器和你需要的队列绑定

使用监听 来获取队列中的消息: 使用注解@RabbitListener (注意要在开启rabbitmq配置 在启动类上添加@EnableRabbit)

@Service
public class RabbitmqService {

    @RabbitListener(queues = "xiaodu.queue01")
    public void receive(User user) {
        System.out.println("监听到的消息为 = " + user);

    }

}

    //使用参数 Message  获取消息内容
    @RabbitListener(queues = "xiaodu.queue01")
    public void receive02(Message message) {
        byte[] body = message.getBody();
        System.out.println("接受到的消息体内容 = " + new String(body));
        MessageProperties messageProperties = message.getMessageProperties();
        System.out.println("接受到的消息headers= " + messageProperties);
    }

使用AmqpAdmin 创建交换器  ,队列 ,绑定关系等

1 创建交换器 exchenge

根据不同的策略可以创建不同的交换器,创建 队列,  创建绑定关系

    @Autowired
    private AmqpAdmin amqpAdmin;

    /**
     * 创建
     */
    @Test
    public void createExchange() {
//        参数  交换器名, durable 是否持久化, autoDelete 是否自动删除
        Exchange exchange = new DirectExchange("exchange.direct",true,false);
        amqpAdmin.declareExchange(exchange);
//        创建 queue-01 队列
        amqpAdmin.declareQueue(new Queue("queue-01"));
//        创建绑定关系
//         destination 绑定的目的地, Binding.DestinationType destinationType 绑定的类型是交换器还是队列,
//         String exchange 绑定到那个交换器上, String routingKey  路由键, Map<String, Object> arguments 命令参数
        Binding binding = new Binding("queue-01",Binding.DestinationType.QUEUE,
               "exchange.direct","exkey-01",null );
        amqpAdmin.declareBinding(binding);

    }

其他的操作都是大同小异,也可以在配置文件中直接注册 你的交换器。队列等

转载rabbitmq分布式:https://blog.youkuaiyun.com/gokeiryou263/article/details/54312094

 

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

相关推荐

springboot整合rabbitMQ

登录rabbitMQ后台。拉取rabbitMQ镜像。查看容器是否启动成功。运行rabbitMQ。安装docker参考。查看镜像是否拉取成功。第二步:生产者(publisher)创建test。新建一个父项目和两个子项目。一个为生产者、一个为消费者。我这里使用的是vm虚拟机做演示。application.yml 配置。消费者(consumer)接收代码。

weixin_41670405的博客 1096

docker安装Rabbitmq教程(详细图文)

在映射的端口号的时候不要映射 5671端口,端口5671是 RabbitMQ 的默认AMQP over TLS/SSL端口。输入上面在初始化Rabbitmq容器时我们自己指定了默认账号和密码:admin/admin123456,如果没有指定的话那么rabbitmq的默认账号密码是:guest/guest。再次进入rabbitmq的web客户端页面,点击各个页面就不会出现那个提示,并且出现了统计图表以及可以添加一下展示的信息字段。docker exec -it 容器名称/容器id /bin/bash。

m0_52985087的博客 1万+

电脑版微信多开,最详细教程没有之一

首先桌面任意的位置右键新建文本文档输入如下代码: TASKKILL /F/IM WECHAT.EXE start " " "D:\Program Files (x86)\Tencent\WeChat\WeChat.exe" start " " "D:\Program Files (x86)\Tencent\WeChat\WeChat.exe" ...

大超子 4389

Docker安装RabbitMQ docker安装RabbitMQ完整详细教程_docker 安装rabbitmq

为了做好运维面试路上的助攻手,特整理了上百道。

m0_60707660的博客 8202

树莓派作为Modbus服务器:pymodbus配置全记录

手把手教你用树莓派部署Modbus服务器,核心基于pymodbus实现数据通信与设备控制,涵盖配置步骤与常见问题,适合工业自动化场景应用。

weixin_42510201的博客 753

Aruba CX交换机VSX配置实战:如何避免脑裂导致的网络中断(含详细命令)

本文提供Aruba CX交换机VSX配置的实战指南,重点讲解如何通过构建高可靠的ISL链路聚合与独立隔离的Keepalive链路,有效避免网络脑裂风险。文章包含详细的命令步骤,从基础配置到高级故障排查,帮助网络工程师构建坚如磐石的高可用核心网络,确保业务流量零中断。

weixin_29231725的博客 170

Docker之安装RabbitMq_docker 安装rabbitmq

此处需要注意,默认rabbitmq镜像是不带web端管理插件的,所以指定了镜像tag为3.8-management,表示下载包含web管理插件版本镜像,其它Tag版本可以访问。从日志可以看出,rabbitMq默认创建了guest用户,并且赋予administrator角色权限,同时服务监听5672端口TCP连接和15672端口的HTTP连接,至此说明安装成功。命令查看rabbitMq在启动过程中日志,3ae是容器ID的简写——容器ID太长,使用时其写前几位即可。15672:http管理界面端口。

2401_89690256的博客 6397

Transformer是什么?看完这篇你就醍醐灌顶

前言 由谷歌团队提出的预训练语言模型BERT近年来正在各大自然语言处理任务中屠榜(话说学者们也挺有意思的,模型名都强行凑个芝麻街的人物名,哈哈哈)。 BERT算法的最重要的部分便是Transformer的概念,它本质上是Transformer的编码器部分。 而Transformer是什么呢?transformer是永远的神,自从transformer使用了抛弃rnncnn的纯attention机制之后,各种基于transformer结构的预训练模型都如雨后春笋般雄起,而transformer中最重要就是使用

fs1341825137的博客 6万+

docker安装RabbitMQ,开启mqtt协议,并且SpringBoot继承mqtt

MQTT(消息队列遥测传输)是ISO标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。国内很多企业都广泛使用MQTT作为Android手机客户端与服务器端推送消息的协议。特点MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;

路漫漫其修远兮,吾将上下而求索 2142

GitHub霸榜神器!NextChat领衔DeepSeek全栈开发范式

NextChat(原ChatGPT-Next-Web)是GitHub上斩获81.2K星标的现象级开源项目,定位为"轻量级AI助手终端",支持DeepSeek、Claude、GPT-4、Gemini等20+主流大模型。• 原生集成DeepSeek、GPT-4、Gemini Pro等模型API,同时兼容RWKV-Runner、LocalAI等自建模型框架,通过环境变量。• 客户端体积仅5MB(Windows安装包约6MB),采用PWA渐进式Web应用技术,首屏加载速度优化至100KB级,老旧设备亦可流畅运行。

实战AI智能体 891

HotSpot G1 GC 的分区记账、SATB 并发标记与停顿目标调优解析

线上GC毛刺该调停顿目标、加大新生代还是换收集器?本文从HotSpot G1的设计出发,梳理分区与巨型对象、卡表与记忆集、写屏障与细化线程、停顿预测、SATB并发标记、自适应IHOP、混合回收规则及Full GC兜底,并注明JDK8至JDK27的版本差异。文中在JDK8与JDK17上实测:停顿目标从200ms降到20ms,伊甸区缩小四成、P99下降但仍超目标;巨型对象会反复触发又撤销并发标记;JDK17并行Full GC平均停顿约为JDK8的三成。最后给出日志解读、参数清单、调优流程与选型。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 170万+

SpringBoot集成RabbitMQ(使用Docker安装)

1、什么是MQ? 消息总线(Message Queue),是一种跨进程、异步的通信机制,用于上下游传递消息。由消息系统来确保消息的可靠传递。具有应用解耦、异步、流量削锋、数据分发、错峰流控、日志收集等等功能。 2、RabbitMQ整体架构 RabbitMQ组件 Publisher:消息生产者 Exchange:消息交换器,将生产者生产的消息与消息队列进行绑定 dirct:消息中的路由键(routing key)如果和Binding中的binding key一致,交换器就将消息发到对应的队列中。路

weixin_44064074的博客 409

《Arduino与LabVIEW开发实战》第2章 LabVIEW基础

第2章 LabVIEW基础 2.1 LabVIEW与虚拟仪器 2.1.1 什么是虚拟仪器 仪器仪表发展方向有很多,其中一个重要方向是将计算机和仪器结合起来。具体来说有两种方式,一种是将微处理器或微控制器嵌入到仪器中,构建智能化的内含嵌入式系统的仪器仪表,这是嵌入式仪器;另一种是将仪器装入计算机中,以通用计算机硬件及操作系统为载体,外配数据采集卡等外部设备,通过编制不同功能的程序,以实现多种仪...

jxgy01的博客 490

docker安装rabbitmq和springboot的配置

docker安装rabbitmq和springboot的配置

chengzzheng的博客 432

YOLOv13涨点改进| CVPR 2026 |独家创新首发、主干改进篇 |利用RIS-PiDiNet主干让YOLOv13更加强大!适合遥感目标检测、小目标检测、旋转目标检测,变化检测,图像分割涨点

🔥本文提出了一种改进的RIS-PiDiNet主干网络,通过引入几何先验构建几何一致性检测器,显著提升了模型在任意方向、结构规则目标场景下的检测性能。包含两个核心模块:S-PDC利用极谐变换的谐波核建模目标结构对称性,RIS-PDC通过SO(2)群平均实现旋转不变性。网络采用基于RIS-block的主干结构并融合轻量级LBP特征,增强了细粒度结构表达能力。实验表明,该方法特别适用于遥感和复杂几何分布场景,能有效提升目标检测的鲁棒性和精度。文章还详细介绍了如何将RIS-PiDiNet集成到YOLOv13框架

Ai缝合怪、助力小伙伴高效发论文 89

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

RabbitMQ第一话 -- docker安装RabbitMQ以及Springboot集成RabbitMQ

RabbitMQ是一个由erlang语言编写的、基于AMQP协议的、开源的消息中间件。支持多种语言使用。 MQ是消息队列(Message Queue)的简称,是应用与程序的通信管道。AMQP:一种提供统一消息服务的应用层标准消息协议,专门为面向消息的中间件设计的。 RabbitMQ介绍 RabbitMQ基于Docker的安装 RabbitMQ管理控制台介绍 RabbitMQ在springboot中的应用 RabbitMQ参数配置详解......

生生不息,则源源不断 641

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SpringBoot完美整合RabbitMq(一)通过docker安装rabbitMq

SpringBoot完美整合RabbitMq(一)通过docker安装rabbitMq 自己的阿里云ECS服务器,系统是centos7,已安装了docker容器。 一、docker上部署启动RabbitMQ 查询rabbitMq镜像 docker search rabbitmq:management 拉取RabbitMq镜像 docker pull rabbitmq:manageme...

The man was lazy and left no message 616

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

RabbitMq介绍 docker-compose安装 springboot整合

大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力消息服务中两个重要概念消息代理(messagebroker)和目的地(destination)当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。消息队列主要有两种形式的目的地队列(queue)点对点消息通信(point-to-point)主题(topic)发布(publish)/订阅(subscribe)消息通信点对点式。......

努力学习,努力爱你! 903

docker - RabbitMQ 安装(单机版)与集成到spring boot

docker - RabbitMQ 安装(单机版)与集成到spring boot一、拉取镜像二、创建映射目录 如 在home目录下创建需要映射的目录二、启动三、进入容器打开管理命令默认账号密码映射的目录四、spring boot持久化与手动确认1.pom配置2.yml配置3.启动配置4.接收者配置内含手动确认 一、拉取镜像 docker pull rabbitmq 二、创建映射目录 如 在home目录下创建需要映射的目录 mkdir -p ~/rabbitmq/{etc,lib,var/{lib,log}

qq1026432050的博客 229

RabbitMQ基本使用,docker安装RabbitMQ,SpringBoot整合RabbitMQ

springboot整合rabbitmq

weixin_45810161的博客 1069

spring boot----RabbitMQ的简单使用和docker安装RabbitMQ

先简单的介绍一下为什么要使用RabbitMQ 三、RabbitMQ运行机制 AMQP 中的消息路由 • AMQP 中消息的路由过程和 Java 开发者熟悉的 JMS 存在一些差别,AMQP 中增加了 Exchange 和 Binding 的角色。生产者把消息发布到 Exchange 上,消息最终到达队列并被 消费者接收,而 Binding 决定交换器的消息应该发送到那个队列。 Exchange 类型 • Exchange分发消息时根据类型的不同分发策略有区别,目前共四种类型:direct、fano

weixin_45065573的博客 337

rabbitMQ在docker安装 整合springboot

包含了rabbitMQ的docker安装以及springboot整合rabbitMQ的过程。创建交换机、队列、以及绑定关系

wzw_wwl的博客 314

SpringBoot学习之路---使用Docker安装RabbitMq

这篇博客来记录一下如何使用Docker来安装RabbitMq以及通过web界面来管理使用RabbitMq 在此之前要确保电脑安装好docker。 通过Docker安装RabbitMq 下载镜像,先去DockerHub查看一下和RabbitMq有关的版本,这里选择官方版本,就是第一个: 点进去之后,因为要使用web界面来管理RabbitMq,所以我们选择tag为management的版本: ...

LeslieLau的博客 343

Docker部署RabbitMQ与简单使用

官网地址: Messaging that just works — RabbitMQ我的Docker博客:Docker-优快云博客其中包含几个概念::生产者,也就是发送消息的一方:消费者,也就是消费消息的一方:队列,存储消息。生产者投递的消息会暂存在消息队列中,等待消费者处理:交换机,负责消息路由。生产者发送的消息由交换机决定投递到哪个队列。:虚拟主机,起到数据隔离的作用。每个虚拟主机相互独立,有各自的exchange、queue基于Docker来安装RabbitMQ,使用下面的命令即可: root

qq_65252348的博客 2099

RabbitMQ从概念到使用、从Docker安装到RabbitMQ整合Springboot【1.5w字保姆级教学】

一、前言 我们先来聊聊消息中间件: 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。(来自百度百科) 我们常见的中间件其实有很多种了,例如ActiveMQ、RabbitMQ、RocketMQ、Kafka、ZeroMQ等,其中应用最为广泛的要数RabbitMQ、RocketMQ、Kafka 这三款。Redis在某种程度上也可以使用list或者Stream来实现消息队列,但不能算是中间件哈!

小王博客基地 4069

docker rabbitmq_SpringBoot2.x系列教程64--消息队列之RabbitMQ安装及环境变量配置

SpringBoot2.x系列教程64--SpringBoot整合消息队列之RabbitMQ安装及环境变量配置作者:一一哥一. 准备安装包Erlang-->http://www.erlang.org/downloadsRabbitMQ-->https://github.com/rabbitmq/rabbitmq-server/releases二. 安装erlang1. 双击图标开始安装...

weixin_39816362的博客 70
上一篇: scala -- 模式匹配 ,判断语句
下一篇: java8 -- Lambda 表达式
xiaoduup
博客等级 码龄9年 23粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值