Java技术学习|消息队列|初级RabbitMQ

server/2024/9/22 14:58:02/

学习材料声明

黑马RabbitMQ快速入门教程,快速掌握rabbitmq、springAMQP消息中间件
是非常初级的学习,听说后续的高级课程会涉及到微服务之类的,所以等学完微服务再回来学。还有redis的高级部分也涉及了微服务,所以也都暂时停止学习了。

MQ是什么?

Message Queue。
为什么会出现这个,因为当请求很多,然后要完成这个请求,需要很多的可以细分的小服务组成,那么为了及时地响应请求,我们将串行执行的服务,分为一个服务(返回请求,发送消息给消息队列),消息队列(接受消息,发送消息给约定好的其他程序完成微服务!)
这样的改进,可以让请求快速得到响应,减少用户的等待时间,可以更好地拓展需求(增加约定好的程序),当部分程序宕机后,不影响其他部分。
这也是老师视频里面同步调用和异步调用的区别。
在这里插入图片描述
修改成:
在这里插入图片描述

常见的MQ技术

Rabbit ActiveMQ RocketMQ Kafka
在选型的时候,考虑到语言的可拓展,可靠,可用,延迟等等。

如何安装docker和rabbitMQ

我也不知道教程里面的命令要在哪里执行,就直接xshell连接虚拟机,复制粘贴,最后稀里糊涂安装好了。
安装教程1
安装教程2

这里还是遇到了一个问题:报错hmall不存在,是因为在docker network ls里面没有create过。所以这行命令直接删除。
外部还是访问不到,原因是防火墙没关

[root@user 公共]# docker run \
>  -e RABBITMQ_DEFAULT_USER=itheima \
>  -e RABBITMQ_DEFAULT_PASS=123321 \
>  -v mq-plugins:/plugins \
>  --name mq \
>  --hostname mq \
>  -p 15672:15672 \
>  -p 5672:5672 \
>  -d \
>  rabbitmq:3.8-managementsystemctl stop firewalld.service

第二天又不知道怎么启动rabbitMQ了。

慢慢懂了(docker存储镜像,镜像创建容器,容器就是一个又一个可以运行起来的程序。)

先看一下镜像还在不在?docker images
看一下容器是不是在运行? docker ps
镜像有,容器无,且docker run又说已有容器,就删除所有停止的容器,再docker run。最后关闭防火墙。
如何获取镜像和删除镜像
如何从已有镜像中创建容器

使用 docker container prune 命令删除所有停止的容器[root@user 公共]# docker run \
>  -e RABBITMQ_DEFAULT_USER=itheima \
>  -e RABBITMQ_DEFAULT_PASS=123321 \
>  -v mq-plugins:/plugins \
>  --name mq \
>  --hostname mq \
>  -p 15672:15672 \
>  -p 5672:5672 \
>  -d \
>  rabbitmq:3.8-managementsystemctl stop firewalld.service

如何访问?

页面上:图上的ip地址是自己的虚拟机地址。
在这里插入图片描述
java程序要访问:走的是5672端口。
在这里插入图片描述

比较不理解的virtual host这个概念

用于区分什么的?
一般是不同项目需要区分不同的虚拟主机。这样就看不到其他项目的队列,交换机之类的了。

SpringAMQP协议

将来我们开发业务功能的时候,肯定不会在控制台收发消息,而是应该基于编程的方式。由于RabbitMQ采用了AMQP协议,因此它具备跨语言的特性。任何语言只要遵循AMQP协议收发消息,都可以与RabbitMQ交互。并且RabbitMQ官方也提供了各种不同语言的客户端。
但是,RabbitMQ官方提供的Java客户端编码相对复杂,一般生产环境下我们更多会结合Spring来使用。而Spring的官方刚好基于RabbitMQ提供了这样一套消息收发的模板工具:SpringAMQP。并且还基于SpringBoot对其实现了自动装配,使用起来非常方便。

基础的模型

1.WorkQueues模型

在这里插入图片描述

2.交换机(可以复用消息给多个队列)

在这里插入图片描述

3.如何接受和发送的是Object类型

在这里插入图片描述

4.整个Java代码梳理

publisher:在配置文件中配置IP地址等等信息。发送消息。
consumer:同样需要配置信息,利用@RabbitListener来监听消息。会涉及交换机与队列的绑定代码。


http://www.ppmy.cn/server/14581.html

相关文章

《HCIP-openEuler实验指导手册》1.1Apache安装与测试

一、安装httpd 查看软件仓库中apache版本列表 dnf provides http 安装apache dnf install -y httpd 二、启动http并测试 查看apache版本号 httpd -v 检查配置文件是否正确 httpd -t 将如下97行取消注释消除报错 重新测试配置文件 httpd -t 启动并设置为开机启动 syste…

Linux Docker下载镜像更改默认存储位置/usr/lib/docker

用于解决docker默认存储位置磁盘空间不足,切换存储位置 1、执行下面命令查看 现在docker的存储位置 docker info | grep "Docker Root Dir" 1.2、如果之前已经下载过镜像可以用mv命令把原来的镜像复制到新的地址 mv /var/lib/docker /data/docker 2、…

25计算机考研院校数据分析 | 北京航空航天大学

北京航空航天大学(Beihang University),简称北航,由中华人民共和国工业和信息化部直属,中央直管副部级建制,位列“双一流”、"211工程”、"985工程”,入选“珠峰计划”、"2011计划”、“111计划”、&qu…

Linux下载及安装OpenSSL

文章目录 前言一、OpenSSL下载二、OpenSSL安装1.上传下载好的安装包到服务器2.解压3.切换目录4.配置config5.编译6.安装7.备份旧版本OpenSSL7.创建软链接8.添加OpenSSL动态链接库9.更新库缓存10.查看OpenSSL版本验证安装是否成功 前言 一般系统会自带有OpenSSL,我们…

SpringMVC深解--一起学习吧之架构

SpringMVC的工作原理主要基于请求驱动,它采用了前端控制器模式来进行设计。以下是SpringMVC工作原理的详细解释: 请求接收与分发: 当用户发送一个请求到Web服务器时,这个请求首先会被SpringMVC的前端控制器(Dispatche…

SpringBoot + Dubbo + zookeeper实现

目录 一,框架搭建 1. 启动zookeeper ! 2. IDEA创建一个空项目; 3.创建一个模块,实现服务提供者:provider-server , 选择web依赖即可 4.项目创建完毕,我们写一个服务,比如卖票的服…

用Python自动获取PDF图纸的图纸大小,并依此分类整理

在建筑行业,设计师用CAD设计完建筑图纸后,常常需要上传到市、省二级图审平台上,故需要将每张图纸转成PDF文档,并盖电子章(出图章、建造师章和结构章),然后上传图审系统。如果设计师在CAD转PDF时…

flutter笔记-万物皆是widget

文章目录 helloFlluter自定义Widget优化 这篇文章后就不见写了,学flutter主要是为了更好的使用 flutter-webrtc,所以到这里基本就了解了大部分的知识,后续边用边查; 在flutter中所有的view都叫widget,类似文本组件Tex…