消息队列基础知识

简介: 什么是消息队列

什么是消息队列?

我们可以把消息队列看作是一个存放消息的容器,当我们需要使用消息的时候,直接从容器中取出消息供自己使用即可。由于队列 Queue 是一种先进先出的数据结构,所以消费消息时也是按照顺序来消费的。

Message queue

参与消息传递的双方称为 生产者消费者 ,生产者负责发送消息,消费者负责处理消息。

网络异常,图片无法展示
|
发布/订阅(Pub/Sub)模型

我们知道操作系统中的进程通信的一种很重要的方式就是消息队列。我们这里提到的消息队列稍微有点区别,更多指的是各个服务以及系统内部各个组件/模块之前的通信,属于一种 中间件

维基百科是这样介绍中间件的:

中间件(英语:Middleware),又译中间件、中介层,是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的软件,应用软件可以借助中间件在不同的技术架构之间共享信息与资源。中间件位于客户机服务器的操作系统之上,管理着计算资源和网络通信。

简单来说:中间件就是一类为应用软件服务的软件,应用软件是为用户服务的,用户不会接触或者使用到中间件。

除了消息队列之外,常见的中间件还有 RPC 框架、分布式组件、HTTP 服务器、任务调度框架、配置中心、数据库层的分库分表工具和数据迁移工具等等。

随着分布式和微服务系统的发展,消息队列在系统设计中有了更大的发挥空间,使用消息队列可以降低系统耦合性、实现任务异步、有效地进行流量削峰,是分布式和微服务系统中重要的组件之一。

目录
相关文章
|
SQL NoSQL Java
JAVA使用Apcahe Calcite 解析sql
JAVA使用Apcahe Calcite 解析sql
4182 0
|
网络协议 小程序 对象存储
阿里云加了防盗链,小程序白名单如何填写
一、场景 场景一:我的阿里云服务器,做了图片连接的防盗链,需要添加域名白名单图片才可显示出来 场景二:我们的使用场景是这样的,DNS解析至阿里云的CND,CDN的回源指向阿里云的OSS
1244 1
|
8月前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课5 在线备份
本文介绍了如何在PolarDB RAC一写多读集群中进行在线备份,特别针对共享存储模式。通过使用`polar_basebackup`工具,可以将实例的本地数据和共享数据备份到本地盘中。实验环境依赖于Docker容器中用loop设备模拟的共享存储。
183 1
|
消息中间件 存储 负载均衡
简单入门:消息队列的概念和应用
在复杂的系统架构中,组件间的通信是至关重要的问题。消息队列作为一种解决方案,能够使组件之间的通信更加高效、可靠。本文将从简单到复杂,逐步向您介绍消息队列的概念、使用场景以及如何实现。
476 3
|
算法 安全 Java
Hutool-crypto 加密、解密详解!
Hutool-crypto 加密、解密详解!
1088 0
|
Rust JavaScript 前端开发
我们都是调包侠
这篇内容讨论了从应用层到硬件层的编程工作,指出每个层次的程序员都是“调包侠”,即通过调用不同层次的接口来完成任务。应用层开发者使用高级语言控制设备,无需深入硬件细节。低级编程语言用于高性能需求,仍依赖操作系统。系统编程涉及硬件接口,需要了解硬件特性。硬件层面则涉及逻辑门电路设计与制造,需要考虑多种因素如性能、功耗和兼容性。文章强调各层次间的相互依赖,并提倡明确软件的局限性,选择细分方向,避免盲目跟风学习。
226 5
|
开发框架 缓存 运维
阿里云轻量应用服务器与经济型e和通用算力型u1实例区别及选择参考
在目前阿里云的活动中,价格比较优惠的云服务器有轻量应用服务器与经济型e和通用算力型u1实例的云服务器,尤其是轻量应用服务器2核2G3M带宽61元1年,经济型e实例2核2G3M带宽99元1年,通用算力型u1实例2核4G5M带宽199元1年,是用户关注度最高的几款云服务器。有的新手用户由于是初次使用阿里云服务器,对于轻量应用服务器与经济型e和通用算力型u1实例的相关性能并不是很清楚,本文为大家做个简单的介绍,以供参考。
阿里云轻量应用服务器与经济型e和通用算力型u1实例区别及选择参考
|
Prometheus 监控 前端开发
前端项目脚本加载失败:net:: ERR_HTTP2_PROTOCOL_ERROR 200
前端项目脚本加载失败:net:: ERR_HTTP2_PROTOCOL_ERROR 200
3402 0
前端项目脚本加载失败:net:: ERR_HTTP2_PROTOCOL_ERROR 200
|
开发工具 git Windows
【Git】‘git‘ 不是内部或外部命令,也不是可运行的程序
【Git】‘git‘ 不是内部或外部命令,也不是可运行的程序
|
Web App开发 Java Apache
使用batik在kotlin中将TTF字体转换为SVG图像
将TTF字体自由的转换为SVG图像是一个有趣的媒体交换,如何实现这一冷门的需求呢?本文参考batik的源代码并利用其中一些功能实现这个有创造力的小功能。
735 0
使用batik在kotlin中将TTF字体转换为SVG图像