概述
优点:
异步处理、削峰填谷、服务解耦
缺点:
延迟问题、复杂度、数据不一致
基础
-
rabbitmq(Exchange +队列)
同一份消息如果需要被多个消费者来消费,需要配置 Exchange 将消息发送到多个队列,
每个队列中都存放一份完整的消息数据,可以为一个消费者提供消费服务。
RocketMQ 为每个消费组在每个队列上维护一个消费位置

-
rocketmq(主题+队列)

-
kafka(主题+分区)
kafka的分区就是rocket的队列
Topic可以被分成若干分区分布于kafka集群中,方便扩容
5. Pulsar
在 Pulsar 的 Broker 中既不保存元数据,也不存储消息,存储计算分离
进阶
mq主要是io密集型的系统,io包含磁盘io和网络io,这里主要是网络io
技术方案
- 异步
- 高性能异步网络传输(netty,nio)
传统的同步网络 IO,一般采用的都是一个线程对应一个 Channel 接收数据,很难支持高并发和高吞吐量- 如何通过网络传输结构化的数据(序列化与反序列化)
JSON、

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

被折叠的 条评论
为什么被折叠?



