消息队列 _

本文详细探讨了消息队列在异步处理、服务解耦中的作用,以及其面临的延迟和复杂性问题。介绍了基础概念如rabbitmq、rocketmq和kafka的特性,重点分析了kafka的实现,包括批量消息、顺序读写、PageCache和零拷贝技术。此外,还涉及流计算、主从同步策略和实现RPC框架的原理。文章最后讨论了消息堆积的解决方案和事务消息处理机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

优点:
异步处理、削峰填谷、服务解耦
缺点:
延迟问题、复杂度、数据不一致

基础

  1. rabbitmq(Exchange +队列)
    同一份消息如果需要被多个消费者来消费,需要配置 Exchange 将消息发送到多个队列,
    每个队列中都存放一份完整的消息数据,可以为一个消费者提供消费服务。
    RocketMQ 为每个消费组在每个队列上维护一个消费位置
    在这里插入图片描述

  2. rocketmq(主题+队列)
    在这里插入图片描述

  3. kafka(主题+分区)
    kafka的分区就是rocket的队列

​ Topic可以被分成若干分区分布于kafka集群中,方便扩容
5. Pulsar
在 Pulsar 的 Broker 中既不保存元数据,也不存储消息,存储计算分离

进阶

mq主要是io密集型的系统,io包含磁盘io和网络io,这里主要是网络io

技术方案

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值