- 博客(7)
- 收藏
- 关注
原创 零开始实现秒杀系统(四):系统优化篇
基于Redis的分布式限流:使用令牌桶算法实现精确的流量控制,保护系统免受流量峰值冲击基于RocketMQ的延时消息:实现可靠的订单超时自动取消,确保库存正确释放多级缓存架构:结合Guava本地缓存和Redis分布式缓存,进一步提升系统性能库存对账机制:确保Redis与数据库之间的库存数据一致性通过这些优化,我们的秒杀系统不仅能够应对高并发场景,还能在保证性能的同时确保数据一致性和系统可靠性
2025-03-19 15:20:06
419
原创 零开始实现秒杀系统(三):RocketMQ消息队列篇
RocketMQ事务消息是一种分布式事务解决方案,它通过两阶段提交(2PC)的机制确保消息发送和本地事务的原子性。消息一定会被发送且被消费,或者消息和本地事务都不会执行V3版本通过引入RocketMQ消息队列,成功解决了V2版本中存在的服务可靠性和水平扩展问题。通过将高争用的库存扣减操作异步化,结合事务消息和三种消息消费保证模式,我们实现了一个高性能、高可靠、可扩展的秒杀系统。在实际生产环境中,可以根据业务需求和一致性要求选择适合的消息消费模式。V1版本:基于MySQL的基础秒杀实现。
2025-03-19 15:17:44
935
原创 从零开始实现秒杀系统(二):Redis优化篇
V2版本秒杀系统通过引入Redis预减库存、快速失败检查、异步下单等创新技术,成功解决了V1版本中的性能瓶颈,实现了一个高性能、高可靠的秒杀系统。Redis作为高性能内存数据库,与MySQL行锁机制相比,具有显著的性能优势。通过将热点数据(库存)放在Redis中,系统能够承受更高的并发压力,同时保证数据的一致性。在系列的下一篇文章《从零开始实现秒杀系统(三):RocketMQ消息队列篇》中,我们将引入RocketMQ消息队列,进一步优化秒杀系统,解决V2版本中存在的剩余问题。
2025-03-19 14:56:29
1044
原创 从零开始实现秒杀系统(一):MySQL行锁与事务篇
在本篇文章中,我们从零开始实现了秒杀系统的基础版本,重点探讨了如何利用MySQL的事务和锁机制来解决高并发场景下的数据一致性问题。错误示范(V0):不加锁直接读取和更新库存,在并发环境下会导致超卖问题。悲观锁实现(V1):使用FOR UPDATE语句在查询时加锁,保证同一时间只有一个事务可以操作库存,但会导致请求串行化,系统吞吐量受限。乐观锁实现(V2):通过版本号机制实现无锁并发控制,避免了长时间的锁等待,但在高并发下成功率较低,可能导致大量请求失败。优化实现(V3)
2025-03-19 14:55:51
691
原创 后端开发项目推荐-帮助斩获offer
推荐一个后端开源的秒杀项目,虽然说秒杀项目已经是烂大街了,但其实市面上的秒杀项目考虑的点都非常少,并且漏洞摆出。这个项目从0开始通过四个版本的实现,逐步解决了高并发挑战,提升了系统的性能和可靠性,实现。如何引入,如何去保证引入后的数据一致性。每个版本解决不同的高并发挑战,并且每一个版本都有博客讲解,链接:https://github.com/Goinggoinggoing/seckill。通过这个项目也帮助我在面试过程中和面试官聊了非常多,后续如果看的人多也可也更新基于该项目面试常见问题!
2025-03-14 20:00:27
184
原创 操作系统面经面试总结 | 精华二十问 | 分类整理突击面试 | 概述、进程、内存、文件IO、其他 | 春招秋招
1.什么是操作系统?操作系统的主要功能是什么?操作系统位于计算机硬件和应用软件之间,负责协调和管理硬件资源的分配、控制和调度,提供对硬件的抽象和访问接口,以便应用程序能够运行并与硬件交互。进程管理、内存管理、文件系统、输入输出2.请大致描述操作系统的启动过程。操作系统的启动过程包括硬件自检、引导加载程序加载、内核初始化、用户空间初始化、用户应用程序加载和运行等阶段。
2023-04-11 18:24:16
1696
1
原创 MySQL高级篇-康师傅-包含索引-调优-范式-事务和锁-MVCC-非常详细笔记
Mysql的高级篇、包含索引的引进、数据接口、索引失效、索引调优、范式、事务、锁、MVCC的笔记
2023-04-10 20:24:31
503
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人