高并发系统设计-消息队列

该文章记录极客时间《高并发系统设计》系列文章的相关知识点,供以后自己查看。这篇文章主要介绍一下消息队列的使用。
消息队列一般有以下作用:异步处理、解耦合和削峰填谷。

  • 异步处理可以简化业务流程中的步骤,提升系统性能;但是消息存在着丢失的风险,需要考虑如何确保消息一定到达。
  • 削峰填谷可以削去到达秒杀系统的峰值流量,让业务逻辑的处理更加缓和,会造成请求处理的延迟。
  • 解耦合可以将秒杀系统和数据系统解耦开,这样两个系统的任何变更都不会影响到另一个系统。增加系统的鲁棒性。

消息队列可能存在消息丢失的情况,如何防止消息丢失以及在消息重复的场景,如何保证尽量不影响消息最终的处理结果。消息的丢失可以通过生产端的重试、消息队列配置集群模式以及消费端合理处理消费进度三种方式来解决;为了解决消息的丢失通常会造成性能上的问题以及消息的重复问题;通过保证消息处理的幂等性可以解决消息的重复问题

减少系统延迟需要从消费端和消息队列两个层面来完成,在消费端的目标是提升消费者的消息处理能力,你能做的是:优化消费代码提升性能;增加消费者的数量(这个方式比较简单)。消息中间件,从两方面考虑读取性能问题:消息的存储;零拷贝技术。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值