消息队列 _

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

概述

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

基础

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

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

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

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

进阶

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

技术方案

  1. 异步
  2. 高性能异步网络传输(netty,nio)
    传统的同步网络 IO,一般采用的都是一个线程对应一个 Channel 接收数据,很难支持高并发和高吞吐量
  3. 如何通过网络传输结构化的数据(序列化与反序列化)
    JSON、
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值