队列结构认识

目录


什么是队列?

消息中间件是指在分布式系统中完成消息的发送和接收的基础软件。消息中间件也可以称消息队列(Message Queue / MQ)。

队列数据结构的特点:

跟排队一样:先进先出

队列的应用场景:

一般在业务中,常常把队列作为一种中间件服务,比如当要处理大量消息的时候,往往是把这些消息放入一个队列存储,这时并不需要立即对它进行处理得到结果。

最后是由订阅者(或消费者)去队列结构里取出,按顺序处理。

消息处理的触发机制

  • 死循环方式读取

    易实现,但有故障时无法及时处理和恢复。

  • 定时任务

    压力均分,有处理量上限,比如在上个定时任务没处理完的情况。

  • 守护进程

    类似PHP-FPM 和 PHP-CG机制。

  • 回调

    函数回调。

异步消息队列的概念

异步消息队列(Asynchronous Message Queue)是一种用于在分布式系统中实现异步通信的机制。它允许不同的应用程序或系统组件通过消息传递进行交互,而无需立即响应或等待对方的处理结果。这种机制有助于解耦系统组件,提高系统的扩展性和容错能力。

常见的异步消息队列框架

  • RabbitMQ:
    基于 AMQP 协议的消息队列,功能强大,支持复杂的路由和消息传递模式。
  • Apache Kafka:
    面向高吞吐量和实时数据流处理的分布式流平台,广泛用于日志收集和实时分析。
  • Beanstalkd
    Beanstalk 是一个简单、快速的工作队列。最初设计用于通过异步运行耗时任务来减少大容量 Web 应用程序中的页面浏览延迟。
  • Redis:
    是一个内存数据库,但也可以用作简单的消息队列,支持发布/订阅和列表操作。
相关推荐
sugar椰子皮1 天前
【爬虫框架-6】中间件的另一种写法实现
爬虫·中间件
better_liang1 天前
每日Java面试场景题知识点之-RabbitMQ
java·消息队列·rabbitmq·面试题·异步通信·企业级开发·系统解耦
天海行者1 天前
多数据源 + ShardingSphere 分库分表 + 读写分离 实现方案
中间件·shardingsphere·dynamic
福大大架构师每日一题2 天前
eino v0.7.7 发布:新增文件系统中间件,优化序列化与反序列化,修复工具信息流问题
中间件
没有腰的嘟嘟嘟2 天前
从 0 到 1:我如何用 Spring Boot 3 + Redis 打造一个生产级通用幂等与防重中间件(含图解 + 代码 + 案例)
spring boot·redis·中间件·lua
腾讯云中间件2 天前
Kafka 集群上云新突破:腾讯云 CKafka 联邦迁移方案
云原生·kafka·消息队列
腾讯云中间件2 天前
腾讯云 RocketMQ 5.x:如何兼容 Remoting 全系列客户端
架构·消息队列·rocketmq
muxin-始终如一2 天前
消息幂等性深度解析与实现方案
开发语言·消息队列·幂等性
浩浩测试一下2 天前
Kerberos 资源约束性委派误配置下的 S4U2self → S4U2proxy → DCSync 提权高阶手法链
安全·web安全·网络安全·中间件·flask·系统安全·安全架构
Sincerelyplz2 天前
【pulsar】pulsar的定时发送实现原理
后端·消息队列·开源