消息中间件-1
创始人
2025-05-29 01:23:47
0

1、什么是消息中间件?

消息中间件属于分布式系统中一个子系统,主要关注于数据的发送和接收,利用高效可靠的异步消息传递机制对分布式系统中的其余各个子系统进行集成。
在这里插入图片描述

2、为什么需要用消息中间件?

低耦合,不管是程序还是模块之间,使用消息中间间进行间接通信;
异步通信能力,是的子系统之间无需等待
伸缩性:不断通过向集群中加入服务器的手段来缓解不断上升的用户并发访问的压力和不断增长的数据存储需求
扩展性:新增一个功能,无需改动之前的功能上新增一个新的功能

3、和RPC有啥区别?在这里插入图片描述

消息中间件调用过程
在这里插入图片描述
RPC调用过程
依赖性;同步性;
相同点:消息中间件和RPC都是分布式下面的通信方式;
不同点:消息中间件属于异步方式;弱依赖,系统级别、模块级别的通信;RPC是同步方式,强依赖,对象级,函数级通信,让远程调用本地方法。

4、消息中间件有哪些使用场景?

1)异步处理

常见用户注册功能,需要发送注册邮件和注册短信。
传统的做法:1、串行的方式;2、并行的方式
在这里插入图片描述
将注册信息写入数据库后,发送注册邮件,发送注册短信。以上三个方法调用完成后,返回给客户端
串行方式完成功能需要150ms
在这里插入图片描述
并行方式将注册信息写入数据库,然后同时启动两个线程发送注册邮件和注册短信;则需要100ms;

在这里插入图片描述
引入消息中间后,则将用户注册信息写入数据库,注册邮件和注册短信写入消息队列后,直接返回,因此写入的消息队列的速度很快,基本上可以忽略。则返回给客户端的时间为55ms。比串行的提升了3倍,比并行提升了两倍。

2)应用解耦

场景用户下单后,订单系统需要通知库存系统。传统的做法是,订单系统调用库存系统的接口。
在这里插入图片描述
1)假如库存系统无法访问,则订单减库存将失败,从而导致订单失败
2)订单系统和库存系统耦合
在这里插入图片描述
订单系统正常下单后,将消息写入队列就不在关心后续操作了。库存系统自行处理消费消息。实现了订单系统和库存系统之间的应用解耦。

3)流量削峰

在这里插入图片描述
用户的请求,服务器接收后,首先写入消息队列。秒杀业务根据消息队列中的请求信息,在做后续的处理。

4)日志处理

日志处理解决大量日志传输的问题。
在这里插入图片描述
日志采集客户端,负责日志数据采集,定时写入kafka队列;kafka消息队列,负责日志数据的接收、存储和转发;日志处理应用,订阅并消费Kafka队列中的日志数据。

5)消息通信

消息通讯比如实现点对点消息队列,或者聊天室
点对点通讯:客户端A和客户端B使用同一队列,进行消息通讯。
聊天室通讯:客户端A,客户端B同时订阅一个主题,进行消息发布和接收。实现聊天室的效果。

5、常见消息中间件比较

在这里插入图片描述

5、1如何进行技术选型

用户访问量不大的情况下,可以考虑ActiveMQ,比较贴近java工程师的习惯。
rabbitMQ使用最多,管理界面也比较丰富,但是erlang语言不可控。
rocketMQ技术绝对有自信的可以使用。
kafka大数据行业,日志采集处理,实时计算

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
JAVA多线程知识整理 Java多线程基础 线程的创建和启动 继承Thread类来创建并启动 自定义Thread类的子类&#...
【洛谷 P1090】[NOIP... [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G ...
国民技术LPUART介绍 低功耗通用异步接收器(LPUART) 简介 低功耗通用异步收发器...
城乡供水一体化平台-助力乡村振... 城乡供水一体化管理系统建设方案 城乡供水一体化管理系统是运用云计算、大数据等信息化手段࿰...
程序的循环结构和random库...   第三个参数就是步长     引入文件时记得指明字符格式,否则读入不了 ...
中国版ChatGPT在哪些方面... 目录 一、中国巨大的市场需求 二、中国企业加速创新 三、中国的人工智能发展 四、企业愿景的推进 五、...
报名开启 | 共赴一场 Flu... 2023 年 1 月 25 日,Flutter Forward 大会在肯尼亚首都内罗毕...
汇编00-MASM 和 Vis... Qt源码解析 索引 汇编逆向--- MASM 和 Visual Studio入门 前提知识ÿ...
【简陋Web应用3】实现人脸比... 文章目录🍉 前情提要🌷 效果演示🥝 实现过程1. u...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
windows安装JDK步骤 一、 下载JDK安装包 下载地址:https://www.oracle.com/jav...
分治法实现合并排序(归并排序)... 🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨...
在linux上安装配置node... 目录前言1,关于nodejs2,配置环境变量3,总结 前言...
Linux学习之端口、网络协议... 端口:设备与外界通讯交流的出口 网络协议:   网络协议是指计算机通信网...
Linux内核进程管理并发同步... 并发同步并发 是指在某一时间段内能够处理多个任务的能力,而 并行 是指同一时间能够处理...
opencv学习-HOG LO... 目录1. HOG(Histogram of Oriented Gradients,方向梯度直方图)1...
EEG微状态的功能意义 导读大脑的瞬时全局功能状态反映在其电场结构上。聚类分析方法一致地提取了四种头表面脑电场结构ÿ...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...