大厂文章

月伴飞鱼 2024-08-06 13:01:30
文章学习
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!

字节

系统设计

抖音支付十万级TPS流量发券实践

文章内容:抖音支付十万级TPS流量发券实践

文章地址:https://mp.weixin.qq.com/s/AV4E0Y9d4k5VYTL7n2TNug

文章总结:

异步发券:

  • 提升接口响应速度

双层本地队列:

  • 提升处理能力,平滑流量

库存扣减:

  • 合并扣减,本地内存校验库存信息

优雅退出:

  • 为了内存中的数据不丢失,需要能够感知到应用退出的信号,在应用退出前将内存中的数据处理掉

兜底补偿:

  • 异常情况引起的应用退出,无法执行优雅退出,增加兜底补偿机制

库存防超卖:

  • 发券失败,回滚 Redis 库存

抖音视频红包系统设计与实现

文章内容:抖音视频红包系统设计与实现

文章地址:https://mp.weixin.qq.com/s/IMfVI7rdcTun3DK1wbqOQw

文章总结:

模块拆分:

  • 红包网关服务,红包核心服务,红包查询服务,红包异步服务,红包基础服务,红包对账服务
  • 功能内聚,每个系统只处理一个任务

红包领取方案:

  • 红包 Redis 限流
  • 内存排队
  • 转账异步化

多重机制保证状态机的推进

服务Set化:

  • 服务 Server 和对应的存储划分为一个单独的 Set

10万级QPS大流量、高并发优惠券系统

文章内容:10万级QPS大流量、高并发优惠券系统

文章地址:https://mp.weixin.qq.com/s/iZ9BX6cCCp_TB-SC3knuew

文章总结:

券过期:

  • RocketMQ实现:延时消息有最大限制,过期消息循环处理,直到卡券过期

热点库存问题:

  • 库存拆分:扣减库存时,也扣减相应的子库存

券模板信息缓存到本地内存

大流量奖励系统入账及展示的设计与实现

文章内容:大流量奖励系统入账及展示的设计与实现

文章地址:https://juejin.cn/post/7081541862741245989

文章总结:

支持多端奖励数据互通:

  • 中台提供的唯一ID基础上,实现支持多端奖励入账

Key的读取和写入:

  • 方案一:拆分多个Key,用本地缓存兜底
  • 方案二:
    • 写场景:通过本地缓存进行合并写请求进行原子性累加
    • 读场景:返回本地缓存的值

大流量集中发券:

  • 使用 Redis 计数,单 Key 会存在热 Key 问题,需要拆分 Key 来解决
  • 少发问题:
    • 上游继续重试发券会多消耗库存少发
    • 预估库存基础上加了5%的量级来缓解超时带来的少发问题

设计方案

高峰值奖励发放技术方案

文章内容:高峰值奖励发放技术方案

文章地址:https://mp.weixin.qq.com/s/jznfR9Jc-U-uCXioHXjeew

文章总结:

奖励SDK设计

大流量活动下钱包提现方案的设计与实现

文章内容:大流量活动下钱包提现方案的设计与实现

文章地址:https://juejin.cn/post/7090490603712020488

文章总结:

延时放量:

  • 分批次放开提现降低用户提现的并发

异步出款:

  • MQ消费提现订单的现金出款

定时任务进行补单推进提现状态

订单幂等:

  • 针对 OrderID 做幂等性控制,每个 OrderID 只有一笔扣款操作

对账校验:

  • 准实时对账和天级对账进行资金的校验

京东

系统设计

日均千万订单的存储

文章内容:交易日均千万订单的存储架构设计与实践

文章地址:https://mp.weixin.qq.com/s/ORxhCSdRoZ0nMEnKoQSxDg

文章总结:

个性化业务模型扩展性:

  • 根据业务身份+业务类型+业务字段找到不同的数据模型以及数据扩展编码

单元化架构:

  • 同一个用户的相关请求,只在一个机房内完成所有业务闭环,不再出现跨机房访问

线上问题

MySQL锁引发的线上问题

文章内容:MySQL锁引发的线上问题

文章地址:https://mp.weixin.qq.com/s/ssXSwqlXjE0jv-yeq7GX9A

文章总结:

避免短时间内存在对同一行数据的先更新再插入的并发操作

腾讯

系统设计

微信服务稳定性保证

文章内容:月活12.8亿信服务稳定性保证

文章地址:https://mp.weixin.qq.com/s/xmQCKVkqhhTKd1k6GmkZfA

文章总结:

监控服务过载

过载保护策略:

  • 按照业务优先级处理请求
  • 设置用户优先级
  • 支持自适应优先级调整

阿里

设计方案

订单场景下的超时处理方案

文章内容:订单场景下的超时处理方案

文章地址:https://developer.aliyun.com/article/1175891

文章总结:

JDK队列方案:

  • 内存占用大,处理效率低,不适合订单量大的场景

RabbitMQ延时消息方案:

  • 使用复杂且不灵活

RocketMQ定时消息方案:

  • 成本太高,同一个时刻大量消息影响精度

Redis过期监听方案:

  • 不可靠,有稳定性问题

定时任务分布式批处理方案(推荐):

  • 基于定时任务分布式批处理的超时中心来做订单超时处理

超时精度比较高,超时时间在24小时内,且不会有峰值压力的场景:

  • 推荐使用RocketMQ的定时消息解决方案

电商业务,许多订单超时场景都在24小时以上,对于超时精度没那么敏感,并且有海量订单需要批处理:

  • 推荐使用基于定时任务的跑批解决方案

业务团队如何正确发MQ消息

文章内容:业务团队如何正确发MQ消息

文章地址:https://mp.weixin.qq.com/s/_bYjQd3BCIT3w1N0cMWlCw

文章总结:

事务消息:

  • 实现复杂,事务阻塞问题

消息表:

  • 增加数据库写入和读取压力
  • 业务操作的代码看起来很整洁
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!