08-04 中间件和平台运行期监控

文章讨论了缓存中间件的常见问题,如缓存击穿、血崩和穿透,提出解决方案如使用布隆过滤器和优化过期策略。同时,分析了消息组件的选型,关注点包括可靠性、消息堆积能力和吞吐量,比较了ActiveMQ、RocketMQ、RabbitMQ和Kafka的特点。此外,还提到了线上监控预警的重要性,特别是针对订单交易核心链路的性能基线设定。
摘要由CSDN通过智能技术生成

缓存中间件的三大坑

  • 缓存击穿
    • 用户访问热点数据,并且缓存中没有热点数据,大量访问直接到DB,热点击穿
    • 采用Canal做数据异构方案,把数据库中的值全部放到缓存
    • 热点缓存策略:通过分析调用日志获取热点数据,放到缓存中
    • 数据到期之前上锁,然后异步刷新缓存,刷新结束后拿掉锁
  • 缓存血崩:key集中过期
    • 调整缓存的过期策略:比如永不过期
    • 过期时间散列:基础时间 + 动态散列时间
    • 缓存预热
  • 缓存穿透
    • 用户访问的是缓存和数据库中都不存在的数据,所以一直不会命中缓存,会直接访问数据库
    • 不存在的数据也构建缓存
    • 布隆过滤器

进击的布隆过滤器

在这里插入图片描述

在这里插入图片描述

消息组件的选型分析

  • 选型关注点:可靠性、消息堆积能力、吞吐量
  • ActiveMQ(过期)
  • RocketMQ、RabbitMQ
    • 可靠性好
    • 可靠性好
    • 死信队列
    • 事务能力
  • Kafka
    • T级堆积能力
    • 顺序读写

线上预警和业务埋点

线上监控预警

订单交易核心链路

  • 业务量阈值(每分钟采集 < X个/分钟)
  • 异常拐点、离群点
    • 平均500单/秒
    • 10单/秒
    • 2000单/秒
  • 异常监控(大于10个/分钟)
  • 核心接口性能基线(平均RT>1000ms)

面试题

项目中的缓存场景,如果并发量+++

  • 缓存血崩、缓存击穿、缓存穿透
  • 热点缓存淘汰策略,多级缓存,布隆过滤器

为什么这个场景使用RMQ,换成Kafka呢?

  • 中间件特性、可靠性要求

业务买点的场景和用途

设计一套轻量级的系统水位监控系统

  • 异步化
  • 基于日志埋点(网络日志 & 应用日志)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值