消息队列(MQ)

A collection of 2 posts
消息队列概要讲解(下)
消息队列(MQ)

消息队列概要讲解(下)

大家好,这里是编程Cookbook。本文概要介绍消息队列的核心原理和实现,以及常见问题及其解决方案等。本文不会过多的扩展详细的消息队列系统,如RocketMQ、RabbitMQ、Kafka等,这些会在后续系列文章中详细介绍。 由于篇幅问题,本文分为上下两节,上节内容参考历史文章:《消息队列概要讲解(上)》 消息传递模式 在消息队列的运行机制中,消费者从消息队列获取数据主要有两种方式:推(Push) 模式和 拉(Pull) 模式,它们在数据传递方式、实时性和资源消耗等方面有显著差异。 首先需要明确一下,推拉模式指的是Consumer和Broker之间的交互。Producer与Broker之间就是推的方式,即Producer将消息推送给Broker,而不是Broker主动去拉取消息。 如果需要Broker去拉取消息,那么Producer就必须在本地保存消息来等待Broker的拉取,如果有很多生产者的话,那么消息的可靠性不仅仅靠Broker自身,还需要靠成千上万的Producer。 概念介绍 1. 推模式(Push) 在推模式中,消息队列
27 min read
消息队列概要讲解(上)
消息队列(MQ)

消息队列概要讲解(上)

大家好,这里是编程Cookbook。本文概要介绍消息队列的核心原理和实现,以及常见问题及其解决方案等。本文不会过多的扩展详细的消息队列系统,如RocketMQ、RabbitMQ、Kafka等,这些会在后续系列文章中详细介绍。 消息队列(Message Queue,MQ) 是在微服务系统和分布式架构中实现异步通信的技术。是分布式系统中重要的组件,主要解决应用耦合,异步处理,流量削锋等问题,实现系统的高性能,高可用,可伸缩,使用较多的消息队列有RocketMQ、RabbitMQ、Kafka等。 为什么需要消息队列? 随着互联网的快速发展,技术架构从单体架构向微服务和分布式架构转变,服务间相互调用和依赖增多。需要一个工具来解耦服务之间的关系、合理控制资源的使用以及缓冲流量洪峰等,消息队列应运而生。 主要功能包括: * 异步处理:例如电商订单系统中,下单后订单处理、库存扣减、支付处理等环节可异步进行,提高系统响应速度。 * 应用解耦:让不同服务专注自身业务,通过消息队列交换信息,如营销系统和支付系统分开。 * 流量削锋:避免流量过大冲垮系统,例如电商大促期间
18 min read