RocketMQ 笔记

本文深入解析RocketMQ的优势、基本概念、工作流程及消费模式,并探讨如何保证消息顺序消费、避免重复消费等问题。

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

MQ 使用场景

消息队列(Message Queue, MQ)是一种用于在分布式系统中传递消息的中间件技术。它通过解耦生产者和消费者,提供了异步通信、流量削峰、系统解耦等功能。以下是消息队列的常见使用场景:

  1. 异步处理
    • 场景:某些操作不需要立即处理,可以通过消息队列异步执行。
    • 示例
      • 用户注册后发送欢迎邮件。
      • 订单支付成功后生成账单。
    • 优点:提高系统响应速度,避免阻塞主流程。

  1. 流量削峰
    • 场景:在流量突增时,通过消息队列缓冲请求,避免系统过载。
    • 示例
      • 电商大促期间,订单系统将订单消息放入队列,由后端服务逐步处理。
    • 优点:平滑流量波动,保护后端服务。

  1. 系统解耦
    • 场景:不同系统之间通过消息队列通信,避免直接依赖。
    • 示例
      • 订单系统生成订单后,通过消息队列通知库存系统扣减库存。
    • 优点:降低系统耦合度,提高可维护性和扩展性。

  1. 日志收集
    • 场景:将分散的日志数据通过消息队列集中收集和处理。
    • 示例
      • 多个服务将日志发送到消息队列,由日志处理服务统一存储和分析。
    • 优点:简化日志处理流程,提高日志处理效率。

  1. 分布式事务
    • 场景:在分布式系统中,通过消息队列实现最终一致性。
    • 示例
      • 订单系统生成订单后,发送消息到队列,由支付系统处理支付。
    • 优点:解决分布式事务问题,保证数据一致性。

  1. 消息广播
    • 场景:将消息广播给多个消费者,实现一对多通信。
    • 示例
      • 配置中心将配置变更消息广播给所有服务。
    • 优点:简化消息分发,提高系统灵活性。

  1. 数据同步
    • 场景:在不同系统或数据库之间同步数据。
    • 示例
      • 将主数据库的变更通过消息队列同步到从数据库。
    • 优点:保证数据一致性,减少系统耦合。

  1. 任务队列
    • 场景:将任务放入队列,由多个工作节点并发处理。
    • 示例
      • 图片处理服务将图片压缩任务放入队列,由多个工作节点处理。
    • 优点:提高任务处理效率,支持水平扩展。

  1. 实时通知
    • 场景:通过消息队列实现实时通知功能。
    • 示例
      • 用户收到新消息时,通过消息队列实时推送到客户端。
    • 优点:提高通知的实时性和可靠性。

  1. 错误重试
  • 场景:处理失败的任务,通过消息队列进行重试。
  • 示例
    • 发送邮件失败后,将任务重新放入队列,稍后重试。
  • 优点:提高任务处理的可靠性。

  1. 微服务通信
  • 场景:在微服务架构中,通过消息队列实现服务间通信。
  • 示例
    • 订单服务通过消息队列通知物流服务发货。
  • 优点:降低服务耦合度,提高系统可扩展性。

RocketMq 优势

吞吐量高:单机吞吐量可达十万级
可用性高:分布式架构
消息可靠性高:经过参数优化配置,消息可以做到0丢失
功能支持完善:MQ功能较为完善,还是分布式的,扩展性好
支持10亿级别的消息堆积:不会因为堆积导致性能下降
可靠性高:天生为金融互联网领域而生,对于要求很高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值