- 博客(22)
- 收藏
- 关注
原创 【剖析高并发秒杀】从流量削峰到数据一致性的架构演进与实践
摘要:本文探讨了高并发秒杀系统架构设计中的核心挑战与解决方案。通过"Redis+Lua脚本+消息队列"的异步架构实现流量削峰,解决了高并发下的性能问题。针对数据一致性问题,提出MQ确认重试机制和数据库联合唯一索引保障内部一致性,并引入Canal订阅Binlog方案实现多业务源头的数据同步。最后强调了幂等设计、死信队列和缓存TTL等兜底策略的重要性,构建了一套兼具高性能、高可用和强一致性的秒杀系统架构。
2025-08-23 18:57:14
447
原创 【保姆级教程】用 Docker 为你的 Spring Boot 项目集成 SkyWalking 全链路监控
它能保证环境的纯净和一致性,并且通过 docker-compose.yml 文件,我们可以一键启动和管理OAP和UI这两个互相关联的服务。:一个前端请求过来,经过了哪些后端服务,调用了哪些数据库、Redis、MQ,一目了然,形成一张拓扑图。:一个无侵入的Java代理,需要“挂载”到我们的Java应用上,负责自动收集数据并发送给OAP。因为在资源有限的虚拟机上,OAP启动很慢,严格的健康检查反而会导致部署失败。如果你在部署过程中遇到各种奇怪的问题,不要灰心,仔细查看日志,一步步排查,你一定能成功!
2025-08-18 23:28:22
746
原创 【数据库优化】深入理解 N+1 查询问题及其解决方案
本文介绍了数据库查询中的N+1性能问题及其解决方案。N+1问题指获取一组数据时,对每个数据额外执行查询,导致1+N条SQL语句,严重影响性能。通过示例数据库表说明问题现象,并提出两种优化方案:1)批量查询+程序组装,将多次查询合并;2)使用JOIN关联查询。进一步建议引入缓存机制如Spring Cache+Redis来提升性能。文章强调通过观察SQL日志发现重复查询模式,并总结了"避免循环查库、多用批量SQL、善用日志缓存"的经验法则。N+1问题是后端开发常见性能陷阱,掌握其解决方案有助
2025-08-18 13:04:44
887
原创 老生常谈MVCC事务隔离级别和MYSQL各种锁机制
这篇文章主要介绍了 MySQL 中的锁机制及其适用场景,包括记录锁(Record Lock)、间隙锁(Gap Lock)和临键锁(Next-Key Lock)的定义与触发条件。文章结合具体 SQL 示例,如 SELECT ... FOR UPDATE 与 LOCK IN SHARE MODE,对比了它们在锁类型和作用上的差异。同时,还分析了不同事务隔离级别下锁的行为特点,以及在范围查询、命中记录与未命中记录时加锁的方式,帮助读者理解当前读、共享锁、排他锁等在并发控制中的应用与影响。
2025-08-15 20:01:37
314
原创 一篇搞懂接口安全与性能优化:幂等、防重复提交、令牌桶、防抖与节流
这篇文章主要介绍了在高并发系统(如 12306 铁路购票平台)中,如何通过 防抖、节流、令牌桶、防重复提交、幂等性 等技术手段来控制请求频率、保护系统稳定性,并确保数据一致性。
2025-08-15 14:06:12
658
原创 这些常见的Redis八股,你能答上来多少?
Redis核心知识点摘要 Redis支持5种基础数据类型:String(缓存/计数器)、Hash(对象存储)、List(队列)、Set(去重集合)、ZSet(有序集合),各有典型应用场景。缓存异常场景包括穿透(布隆过滤器)、击穿(互斥锁)、雪崩(随机TTL)。保证缓存一致性常用策略有延迟双删、消息队列异步更新、Canal监听binlog等。Redis高性能源于内存存储、单线程I/O多路复用和高效数据结构。持久化提供RDB快照和AOF日志两种机制,主从同步通过全量/增量复制保证数据一致性。实际应用还包括登录S
2025-08-14 00:14:48
644
原创 这些常见的mysql八股,你能答出来多少?
本文系统梳理了MySQL核心机制:事务特性(ACID)通过日志和锁机制实现,重点解析了四种隔离级别及幻读问题。详细介绍了全局锁、表锁、行锁等锁机制的原理与作用,以及索引类型、B+树结构、索引失效场景等优化要点。同时涵盖执行计划分析、慢查询优化,以及三大日志(错误日志、慢查询日志、binlog)和InnoDB特有日志(redo log/undo log)的关键作用。全文提供了MySQL从并发控制到性能优化的完整知识框架。
2025-08-11 12:59:18
822
原创 基于Django的自习室预约管理系统
为解决高校及公共自习室普遍存在的"占座难、管理乱"问题,开发本在线预约管理系统。旨在替代传统线下排队或低效管理方式,提供便捷、透明、高效的座位预定与管理服务。主要面向需要自习空间的学生及社会人士。核心功能包括用户认证、自习室浏览、座位实时状态查看、在线预约、扫码签到、后台管理等。系统致力于提供稳定、响应及时的服务,并通过前后端分离架构提升用户交互体验。(目前未进行详细竞品分析)架构演进的挑战。
2025-05-11 17:17:11
1116
原创 《JavaSE快速复习笔记》
默认比较对象内存地址,若需比较对象内容(值相等),必须重写该方法。:类型安全、代码复用、减少强制类型转换。:保证变量可见性,禁止指令重排序。:上界通配符(T及其子类)。:下界通配符(T及其父类)。:无界通配符(任意类型)。:保证多线程操作的有序性。)中对象能正确存储。(处理二进制数据)。
2025-03-15 18:32:13
865
原创 2025你好呀!(跨年算法)
它们在数据的海洋中穿梭,将杂乱无章的信息梳理得井然有序,正如新年里我们对生活的期许,希望一切都能井然有序、和谐美好。这些树的结构,如同新年里的繁花似锦,装点着数据的世界。它们在复杂的图中寻找最短路径,正如我们在新年里对理想的追求,希望每一步都能更加接近心中的目标。它们在复杂的网络中寻找最优解,正如我们在新年里对未来的探索,希望找到那条最短的路径,抵达心中所想。希望这段文字能够将那些看似冷冰冰的术语转化为充满新年气氛的祝福,愿你在新的一年里,无论是在编程还是在生活的道路上,都能一帆风顺,心想事成。
2025-01-01 10:57:16
592
原创 vs code 环境配置(小白快速上手版)
4. 扩展性:VS Code 拥有丰富的扩展生态系统,可以通过安装扩展来增强功能,如 HTMLHint、HTML Snippets 等,这些扩展可以帮助您快速编写 HTML 代码。总的来说,VS Code 是一个非常适合 HTML 学习的工具,它提供了高效的编辑体验、强大的功能和良好的社区支持,可以帮助您更快地掌握 HTML 开发。10. 社区支持:VS Code 有一个活跃的社区,您可以找到大量的学习资源、教程和解决方案,帮助您在 HTML 学习过程中解决问题。
2024-12-28 19:54:35
2014
原创 通过http协议实现同步传输
在当今快速发展的信息技术领域,团队协作和数据同步的需求日益增长。特别是在远程工作和分布式团队的环境中,实时文件同步和监控成为了提高工作效率的关键因素。
2024-12-26 17:28:13
2002
原创 一行代码带你搞清构造函数和析构函数!
在现代编程语言中,如C#和Java,垃圾回收机制会自动管理内存,但析构函数(或类似的终结器/析构器)仍然用于释放非内存资源。在C++中,由于没有自动垃圾回收,构造函数和析构函数对于资源管理尤为重要。构造函数:确保对象在使用前被正确初始化,避免出现未定义状态。析构函数:确保对象在不再使用时释放资源,防止资源泄露。代码展示:简单进行对一个成员数组进行初始化。
2024-12-05 21:34:02
286
原创 面向对象编程(OOP)知识点大纲
面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它将现实世界中的实体抽象成对象,并通过对象之间的交互来设计和构建软件系统。以下是面向对象编程的核心知识点:1.类和对象:类(Class):类是对象的蓝图或模板,定义了对象的属性(数据成员)和方法(成员函数)。对象(Object):对象是类的实例,每个对象拥有自己的状态和行为。2.封装(Encapsulation):封装是将数据(属性)和操作数据的方法(行为)捆绑在一起的过程,同时限制对数据的直接访问。
2024-12-05 00:39:49
499
原创 什么是爬虫?进来看看!
python的爬虫使用多种库和框架来实现,其中最常用的是requests、BeautifulSoup和Scrapy。requests库用于发送HTTP请求和接收响应,BeautifulSoup库用于解析HTML或XML文档中的数据,Scrapy是一个更为庞大的框架,提供了更高级和全面的爬虫功能。4. 丰富的数据处理和分析功能:Python拥有丰富的数据处理和分析库,可以对爬取到的数据进行各种处理和分析。2. 强大的库和框架支持:Python拥有丰富的爬虫相关库和框架,可以轻松完成各种爬虫任务。
2024-12-02 23:15:53
677
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人