谷粒商城实战(019 RabbitMQ-发送消息)

embedded/2024/9/22 15:47:57/

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强

总时长 104:45:00 共408P

此文章包含第248p-第p261的内容


介绍

在这里插入图片描述
MQ的三大特点:流量削峰、应用解耦、异步处理
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

redis是数据缓存,mq是任务缓存

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

AMQP的MODEL 第一种是队列的实现 后四种是订阅的实现
在这里插入图片描述
网络间传输 万物皆流

在这里插入图片描述

概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一个客户端(消费者)只建立一个链接(长链接)
在这里插入图片描述
在这里插入图片描述

一连接,多信道
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

虚拟主机

每个虚拟主机是相互隔离的,一个出问题对其他无影响(沙箱) 相当于又安装了另外一个rabbitmq
也可以开发时一个虚拟主机 上生成环境时一个虚拟主机
在这里插入图片描述
在这里插入图片描述
长链接的好处: 断开了会实时感知到是否连接到了,不会丢失因为网络断开而导致数据被消费

安装

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

这里使用docker安装

查看镜像
在这里插入图片描述

在这里插入图片描述
docker ps 查看正在运行中的容器
在这里插入图片描述

docker update rabbitmq --restart=always
设置rabbitmq自动启动

在这里插入图片描述
docker ps 查看正在运行中的容器 发现已经启动了
在这里插入图片描述
如果下载很慢 docker配个阿里镜像加速,用原生的很慢
默认账号密码都是guest
在这里插入图片描述

运行状态概览
这里右上方是5秒刷新一次
nodes节点信息
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

导出配置
在这里插入图片描述

交换机
在这里插入图片描述

管理设置功能
在这里插入图片描述
虚拟主机信息
在这里插入图片描述
在这里插入图片描述

运行机制

在这里插入图片描述
在这里插入图片描述
direct,headers是点对点的模式 (headers性能低下 无人用)
fanout,topic是发布订阅的模式
在这里插入图片描述
direct直接交换机
在这里插入图片描述
fanout广播队列 (全部队列都接收)
topic订阅模式 (可以选择性的发送数据)(部分广播)
在这里插入图片描述
在这里插入图片描述
可以理解为 私人喇叭,全服大喇叭,频道喇叭

在这里插入图片描述

创建交换机

durable持久化 transient非持久化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

直连交换机 direct

在这里插入图片描述

队列名和路由键可以相同
在这里插入图片描述
这里交换机绑定四个队列
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Ack 看完了之后消费掉不重新进队 (删除)
在这里插入图片描述

扇形交换机fanout

在这里插入图片描述
在这里插入图片描述

主题交换机 topic

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

整合Spring

在这里插入图片描述
引入了包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这些带@Bean的都是它给容器中放的组件
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

测试创建交换机

在这里插入图片描述

找到rabbit自动配置类(RabbitAutoConfiguration )
发现它的配置信息在RabbitProperties这里类里
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试创建队列

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试绑定

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试发送消息

引入template

在这里插入图片描述
发送对象
在这里插入图片描述
在这里插入图片描述

这里得到的对象是序列化后的对象,所以这个类一定要实现序列化接口 到时候其他程序收到的时候进行反序列化来查看信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

也可以使用json发送数据

实际应用中如果是跨语言了,会发送JSON格式化后的数据,序列化其他语言可能会不支持

源码显示 这里如果容器中有MessageConverter(消息转换器) 就使用我们传入的MessageConverter 进行转换,如果没有定义就会使用序列化的那种
在这里插入图片描述

在这里插入图片描述
如果没有 用这个默认的SimpleMessageConverter
在这里插入图片描述
这里使用的是序列化的方式
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

写一个to json的
在这里插入图片描述
写一个配置类
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
内容类型 json
在这里插入图片描述

接收消息

监听队列
在这里插入图片描述
必须有@EnableRabbit才行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

windows查看端口占用命令
netstat -ano |findstr 9000 这里是ano跟linux的anp不太一样
在这里插入图片描述
查看进程号
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

通道信息
在这里插入图片描述
模拟多个服务消费消息队列信息
这里复制运行配置信息 然后改端口号
在这里插入图片描述
发送十条消息
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
逐步接收的消息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

注解放在类上 然后可以使用方法的重载 来进行多种不同类型的数据 方法上要加@RabbitHandler
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述



http://www.ppmy.cn/embedded/30911.html

相关文章

使用STM32F103C8T6与蓝牙模块HC-05连接实现手机蓝牙控制LED灯

导言: 在现代智能家居系统中,远程控制设备变得越来越普遍和重要。本文将介绍如何利用STM32F103C8T6单片机和蓝牙模块HC-05实现远程控制LED灯的功能。通过这个简单的项目,可以学会如何将嵌入式系统与蓝牙通信技术相结合,实现远程控制的应用。 目录 导言: 准备工作: 硬…

人大金仓数据库的数据分析的方法和工具

人大金仓数据库作为中国社会科学院经济研究所主办的重要数据平台,不仅提供丰富的经济学研究成果,还支持用户进行数据分析和挖掘,以发现数据中的规律和趋势。在以下的论述中,我将深入探讨人大金仓数据库的数据分析方法和工具。 数…

Python 正则表达式2 语法基础

内容概述 正则表达式是由普通字符(例如"a",“b”,“c"等)以及特殊字符(例如”“,”-“,”^"等)组成的文字模式。举个例子,[a-z]这个正则表达式就代表了匹配所有的小写字母(“a”,“b”,“c”,…,…

第十五届蓝桥杯省赛大学B组(c++)

很幸运拿了辽宁赛区的省一,进入6月1号的国赛啦... 这篇文章主要对第十五届省赛大学B组(C)进行一次完整的复盘,这次省赛2道填空题6道编程题: A.握手问题 把握手情景看成矩阵: 粉色部分是7个不能互相捂手的情况 由于每个人只能和其他人捂手, 所以黑色情况是不算的 1和2握手2和…

鸿蒙OpenHarmony【标准系统 烧录】(基于RK3568开发板)

烧录 烧录是指将编译后的程序文件下载到芯片开发板上的动作,为后续的程序调试提供基础。DevEco Device Tool提供一键烧录功能,操作简单,能快捷、高效的完成程序烧录,提升烧录的效率。 RK3568的镜像烧录通过Windows环境进行烧录&…

uniapp+axios请求的封装

uniappaxios请求的封装 因在用vue3.0时会导致无法引有buildFullPath和settle两个库。所简单处理这两个方法 // utils/request.ts文件代码如下 /***uniappaxios请求的封装 **/import axios from axios import $config from "/config/config" import {getToken,remo…

简单记录一下在linux中安装pytorch成功!

1. 安装版本 pytorch版本:2.0.0 torchvision版本:0.15.0 torchaudio版本:2.0.0 cuda版本:cuda11.8 python版本:3.9 # CUDA 11.8 pip install torch2.0.0cu118 torchvision0.15.1cu118 torchaudio2.0.1 --index-url https://download.py…

堆排序以及TOP-K问题

片头 嗨!小伙伴们,大家好!今天我们来深入理解堆这种数据结构,分析一下堆排序以及TOP-K问题,准备好了吗?我要开始咯! 一、堆排序 这里我们先假设要排成升序,也就是从左到右&#xf…