面试官问: 如何保证 MQ消息是有序的?

在高并发场景下,为了保证消息的有序性,本文探讨了MQ架构设计中的局部有序策略。通过确保相同上下文的消息分配到同一分区,例如电商订单状态变更消息,可以满足业务顺序处理需求。以RocketMQ为例,介绍了如何通过不同选择策略实现分区选择,并讨论了单线程消费、队列锁定以及消息重试和死信队列的处理机制。
摘要由CSDN通过智能技术生成

大家好,我是Tom哥~

为了系统间解耦,我们通常会引入MQ框架,大家各司其职共同完成上下游的业务流程。

图片

大致过程:

  • 生产端,创建一条消息,通过网络发送到MQ Server

  • MQ将 消息存储在topic 的一个分区

  • 消费端,从分区中拉取消息,消费处理

但现实往往不一样!MQ 架构设计要满足高并发、高性能、高可用等指标

图片

单分区,达不到我们的吞吐量要求,我们考虑采用多分区架构设计,正所谓 ”三个臭皮匠赛过一个诸葛亮“,多分区可以有效分摊全局压力,提升整体系统性能。

图片

两台 MQ机器,组成一个集群,原先一个分区存储6条消息,现在分摊到两个分区,每个分区各存储3条消息,性能比上面那个提升一倍。

貌似可以满足我们的需求,但任何事情都有两面性&#

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值