简易描述了秒杀系统的设计思路。
SpringMVC 创建及请求处理过程解析
通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫开发者只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、过滤器以及处理程序对象的角色,这种分离让它们更容易进行定制。
SpringBoot ApplicationContext 层次及职责解析
Application Context 是 BeanFactory 的子接口,并提供了更丰富的功能:自动注入、自动配置、生命周期监听等,本文会对 Spring Application Context 的层次及职责进行解析。
SpringBoot 启动流程解析
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
MySQL 锁
介绍了数据库中的锁。
MySQL 索引
InnoDB 存储引擎支持以下几种常见的索引:B+ 树索引、全文索引、哈希索引。
InnoDB 存储引擎会根据表的使用情况自动为表生成哈希索引,不能人为干预。B+ 树索引是传统意义上的索引。它并不能找到一个给定键值的具体行,它能找到的只是被查找数据行所在的页。然后数据库通过把页读人到内存,再在内存中进行查找,最后得到要查找的数据。
MySQL 表
本文将从 InnoDB 存储引擎表的逻辑存储及实现开始进行介绍,然后将重点分析表的物理存储特征,即数据在表中是如何组织和存放的。
MySQL 文件
本章将分析构成 MySQL 数据库和 InnoDB 存储引擎表的各种类型文件。这些文件都存放在数据目录中,我们可以通过 SHOW VARIABLES LIKE 'datadir'
来查看该目录的位置。这些文件类别如下:
- 参数文件:告诉 MySQL 实例启动时在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还会介绍各种参数的类型。
- 日志文件:用来记录 MySQL 实例对某种条件做出响应时写入的文件,如错误日志文件、二进制日志文件、慢查询日志文件、查询日志文件等。
- socket 文件:当用 UNIX 域套接字方式进行连接时需要的文件。
- pid 文件:MySQL 实例的进程 ID 文件。
- MySQL 表结构文件:用来存放 MySQL 表结构定义文件。
- 存储引擎文件:因为 MySQL 表存储引擎的关系,每个存储引擎都会有自己的文件来保存各种数据。这些存储引擎真正存储了记录和索引等数据。
JDK Thread API
线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在 Unix System V 及 SunOS 中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。
MySQL InnoDB存储引擎
InnoDB,是 MySQL 的数据库引擎之一,现为 MySQL 的默认存储引擎,为 MySQL AB 发布 binary 的标准之一。与传统的 ISAM 与 MyISAM 相比,InnoDB 的最大特色就是支持了 ACID 兼容的事务(Transaction)功能,类似于 PostgreSQL。