伸缩:当消息队列性能有问题,比如消费太慢,是否可以快速支持扩容;当消费队列过多,浪费系统资源,是否可以支持缩容。 消息留存:消息消费成功后,是否还会继续保留在消息队列; 容错性:当一条消息消费失败后,是否有一些机制,保证这条消息一定能成功,比如异步第三方退款消息,需要保证这条消息消费掉,才能确定给用户退款成功,所以必须保证这条消息消费成功的准
消息延迟投递,当消息产生送达消息队列时,有些业务场景并不希望消费者立刻收到消息,而是等待特定时间后,消费者才能拿到这个消息进行消费。延迟队列一般分为两种,基于消息的延迟和基于队列的延迟。基于消息的延迟指为每条消息设置不同的延迟时间,当队列有新消息进入的时候根据延迟时间排序,当然这样会对性能造成较大影响。另...
消息顺序:发送到队列的消息,消费时是否可以保证消费的顺序; 伸缩:当消息队列性能有问题,比如消费太慢,是否可以快速支持扩容;当消费队列过多,浪费系统资源,是否可以支持缩容。 消息留存:消息消费成功后,是否还会继续保留在消息队列; 容错性:当一条消息消费失败后,是否有一些机制,保证这条消息一定能成功,比如异步第三方...
消息通讯:消息队列一般都内置了高效的通信机制,因此也可以用在纯的消息通讯,比如实现点对点消息队列,或者聊天室等。 消息广播:如果没有消息队列,每当一个新的业务方接入,我们都要接入一次新接口。有了消息队列,我们只需要关心消息是否送达了队列,至于谁希望订阅,是下游的事情,无疑极大地减少了开发和联调的工作量。 0...
1 消息队列简介 消息队列是分布式系统中重要的中间件,在高性能、高可用、低耦合等系统架构中扮演着重要作用。分布式系统可以借助消息队列的能力 轻松实现以下功能: 解耦:将一个流程的上游和下游拆开,上游专注生产消息,下游专注处理消息。 流量削锋:当上下游系统处理能力存在差距的时候,利用消息队列做一个通用的”载体”...
消息队列选型指南 在选择消息队列时,首先应根据具体的应用场景来决定。例如,在微服务架构中,消息队列可用于解耦服务间的通信,提高系统的灵活性与响应速度;在线交易场景下,则更注重于保证数据的一致性和高可用性;对于大数据处理任务,消息队列可以作为数据流的缓冲区,帮助平滑峰值流量;而在物联网领域,消息队列需要支持大量...
有人说RabbitMQ功能强大,就像瑞士军刀,样样精通;也有人说Kafka吞吐量巨大,就像巨型卡车,运力无敌。两种观点针锋相对,究竟谁才是消息队列之王?先别急着下,这其中暗藏玄机,且听我慢慢道来。让我们先从最常见的订单系统说起。用户下单后,系统需要通知库存、物流等多个模块。这时,RabbitMQ就像一位经验丰富的...
三、选型要点 四、功能剖析 五、性能 六、运维 七、常见问题 & 使用场景 八、总结 消息队列是重要的分布式系统组件,在高性能、高可用、低耦合等系统架构中扮演着重要作用。可用于异步通信、削峰填谷、解耦系统、数据缓存等多种业务场景。本文是关于消息队列(MQ)选型和常见问题的精心整理。在这篇文章中,我们将详细...
2.1 ▲ 选型与应用概述 常见消息队列包括Kafka、RabbitMQ、RocketMQ和ActiveMQ。在选择合适的队列时,我们需要考虑吞吐量、稳定性和应用需求。Kafka以其高吞吐量和低延迟著称,适合大数据量的互联网服务。而RocketMQ因高稳定性,特别适合金融互联网领域。RabbitMQ则以广泛的语言支持和灵活的消息路由受到青睐。在团队...
利用消息队列,可以将某些非必要的逻辑异步处理,从而提高系统的响应速度。通过消息队列实现暂时存储以便异步处理,使得系统更为高效。▲ 削峰 在高峰期,消息队列能够吸收额外的流量,降低系统直接处理的峰值压力,从而提升系统的稳定性。▲ 系统可用性受损 若系统原先运行稳定,但加入消息队列后,一旦该队列出现问题,...