Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,12 @@
* [分库分表与分布式主键生成策略](docs/database/mysql/sharding/分库分表与分布式主键生成策略.md)
* [ShardingProxy分库分表](docs/database/mysql/sharding/ShardingProxy分库分表.md)

#### SQL 练习
* [排序和分组](docs/database/mysql/sql/sort_group.md)
* [聚合函数](docs/database/mysql/sql/aggregate_function.md)
* [高级查询和连接](docs/database/mysql/sql/query_join.md)
* [子查询-餐馆营业额](docs/database/mysql/sql/sub_query/1321restaurant_growth.md)

### PostgreSQL
* [postgresql基础](docs/database/postgresql/postgresql基础.md)

Expand Down
27 changes: 27 additions & 0 deletions docs/database/clickhouse/ClickHouse基础.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# ClickHouse 基础

## 1. ClickHouse 概述

ClickHouse 是由 Yandex 开源的列式存储数据库,专为在线分析处理(OLAP)设计。

### 1.1 核心特性
- **列式存储**:按列而非行组织数据,分析查询极快
- **向量化执行**:SIMD 指令加速计算
- **数据压缩**:高压缩比减少存储和 IO
- **分布式**:天然支持分区和副本
- **SQL 支持**:兼容大部分 SQL 标准

### 1.2 与 MySQL 对比
| 维度 | ClickHouse | MySQL |
|------|-----------|-------|
| 定位 | OLAP 分析 | OLTP 事务 |
| 存储 | 列式 | 行式 |
| 查询速度 | 聚合快 | 点查快 |
| 事务 | 不支持 | 支持 |

## 2. 应用场景

- 实时数据分析看板
- 用户行为分析(点击流)
- 广告投放效果统计
- 系统监控指标存储
26 changes: 26 additions & 0 deletions docs/database/es/ElasticSearch基础.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# ElasticSearch 基础

## 1. ElasticSearch 概述

ElasticSearch 是一个基于 Lucene 的分布式搜索和分析引擎,提供近实时搜索、全文检索和数据分析能力。

### 1.1 核心概念
- **索引(Index)**:类似于数据库中的表
- **文档(Document)**:JSON 格式的数据行
- **映射(Mapping)**:定义字段类型和索引规则
- **分片(Shard)**:索引被分解为多个分片分布到节点
- **副本(Replica)**:分片的副本,提供高可用

### 1.2 核心特性
- **全文搜索**:分词、相关性评分
- **聚合分析**:类似 SQL GROUP BY
- **近实时**:1 秒内可搜索到新文档
- **分布式**:水平扩展、自动分片
- **RESTful API**:基于 HTTP 的 JSON 接口

## 2. 应用场景

- 全文搜索(商品搜索、站内搜索)
- 日志分析(ELK Stack)
- APM 监控数据存储
- 数据分析与可视化
29 changes: 29 additions & 0 deletions docs/database/mongodb/MongoDB基础.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# MongoDB 基础

## 1. MongoDB 概述

MongoDB 是一个开源的文档型 NoSQL 数据库,使用 BSON 格式存储数据。

### 1.1 核心特性
- **文档模型**:类 JSON 的 BSON 格式,灵活的数据结构
- **水平扩展**:原生分片支持
- **高可用**:副本集自动故障转移
- **丰富的查询**:支持聚合管道、全文搜索、地理空间查询

### 1.2 核心概念
| SQL 概念 | MongoDB 概念 |
|----------|-------------|
| Database | Database |
| Table | Collection |
| Row | Document |
| Column | Field |
| Index | Index |
| Join | $lookup |

## 2. 适用场景

- 内容管理(CMS)
- 日志存储与分析
- 物联网时序数据
- 用户画像与个性化推荐
- 移动应用后端
37 changes: 37 additions & 0 deletions docs/database/mysql/mysql基础.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# MySQL 基础

## 1. MySQL 概述

MySQL 是最流行的开源关系型数据库管理系统(RDBMS),由 Oracle 公司维护。

### 1.1 核心特性
- **ACID 事务**:支持 InnoDB 存储引擎的事务
- **多版本并发控制(MVCC)**:提高并发读写性能
- **复制**:主从复制、组复制
- **分区**:表分区优化查询

### 1.2 存储引擎
- **InnoDB**:默认引擎,支持事务、行锁、外键
- **MyISAM**:不支持事务,表锁,适合读多写少
- **Memory**:数据存储在内存,适合临时表

## 2. 数据类型

- **数值**:INT、BIGINT、DECIMAL
- **字符串**:VARCHAR、CHAR、TEXT
- **日期时间**:DATE、DATETIME、TIMESTAMP
- **JSON**:原生 JSON 类型

## 3. 索引

- B-Tree 索引
- 哈希索引
- 全文索引
- 空间索引

## 4. SQL 语句分类

- DDL(数据定义语言)
- DML(数据操作语言)
- DCL(数据控制语言)
- TCL(事务控制语言)
27 changes: 27 additions & 0 deletions docs/database/postgresql/postgresql基础.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# PostgreSQL 基础

## 1. PostgreSQL 概述

PostgreSQL 是一个功能强大的开源对象关系型数据库系统(ORDBMS),以其标准兼容性和扩展性著称。

### 1.1 核心特性
- **ACID 事务**:完整支持事务隔离级别
- **MVCC**:无锁并发控制
- **丰富的数据类型**:数组、JSON/JSONB、几何、网络地址等
- **全文搜索**:内置 tsvector/tsquery
- **扩展机制**:支持自定义函数、数据类型、操作符

### 1.2 与 MySQL 对比
| 维度 | PostgreSQL | MySQL |
|------|-----------|-------|
| 标准兼容 | 更严格 | 较宽松 |
| JSON 支持 | JSONB(二进制) | JSON |
| 复制 | 流复制、逻辑复制 | 基于 binlog |
| 扩展性 | 极强 | 一般 |

## 2. 适用场景

- 复杂查询和分析
- GIS 地理信息系统(PostGIS)
- 金融系统(严格数据完整性)
- 需要自定义类型的业务
29 changes: 29 additions & 0 deletions docs/database/redis/redis基础.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Redis 基础

## 1. Redis 概述

Redis(Remote Dictionary Server)是一个开源的、基于内存的键值存储系统,常用作数据库、缓存和消息代理。

### 1.1 核心特性
- **高性能**:基于内存,读写速度极快(10W+ QPS)
- **丰富的数据结构**:String、List、Set、ZSet、Hash、Stream 等
- **持久化**:RDB 快照 + AOF 日志
- **高可用**:主从复制 + Sentinel 哨兵
- **集群**:Redis Cluster 分片

### 1.2 数据结构
- **String**:最简单的 KV 结构
- **List**:双向链表,可用作队列
- **Set**:无序集合,支持交并差运算
- **ZSet**:有序集合,按 score 排序
- **Hash**:存储对象属性
- **Stream**:消息队列数据结构

## 2. 应用场景

- 缓存(热点数据、Session)
- 分布式锁
- 计数器
- 排行榜
- 消息队列
- 位图统计
24 changes: 24 additions & 0 deletions docs/gateway/gateway基础.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Spring Cloud Gateway 基础

## 1. Gateway 概述

Spring Cloud Gateway 是基于 Spring WebFlux 的 API 网关,提供路由、过滤、限流等网关功能。

### 1.1 核心特性
- **基于 WebFlux**:非阻塞、响应式编程模型
- **动态路由**:支持从注册中心动态获取路由
- **断言(Predicate)**:基于请求路径、Header、参数等条件匹配路由
- **过滤器(Filter)**:请求预处理、响应后处理
- **集成 Sentinel / Hystrix**:限流和熔断

### 1.2 核心概念
- **Route(路由)**:网关的基本构建块,包含 ID、目标 URI、断言集合和过滤器集合
- **Predicate(断言)**:匹配 HTTP 请求的条件
- **Filter(过滤器)**:对请求和响应进行修改

## 2. 与 Zuul 对比
| 维度 | Gateway | Zuul 1.x |
|------|---------|----------|
| IO 模型 | 非阻塞 | 阻塞 Servlet |
| 线程模型 | 少量线程 | 每连接一线程 |
| 性能 | 高 | 一般 |
25 changes: 25 additions & 0 deletions docs/mybatis/mybatis基础.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# MyBatis 基础

## 1. MyBatis 概述

MyBatis 是一款优秀的持久层框架,支持自定义 SQL、存储过程以及高级映射。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。

### 1.1 核心特性
- **SQL 与代码分离**:SQL 写在 XML 或注解中
- **动态 SQL**:基于 OGNL 的表达式的灵活 SQL 拼接
- **映射**:自动将 ResultSet 映射为 POJO
- **插件机制**:通过拦截器扩展功能

### 1.2 核心组件
- **SqlSessionFactory**:创建 SqlSession 的工厂
- **SqlSession**:执行 SQL、获取 Mapper 接口
- **Mapper 接口**:映射 SQL 的 Java 接口
- **Executor**:底层 SQL 执行器

## 2. 与 JPA/Hibernate 对比
| 维度 | MyBatis | Hibernate |
|------|---------|-----------|
| SQL 控制 | 手写 SQL | 自动生成 |
| 学习成本 | 低 | 高 |
| 灵活性 | 高 | 受限于 ORM |
| 适用场景 | 复杂查询 | 标准 CRUD |
25 changes: 25 additions & 0 deletions docs/nacos/Nacos基础.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Nacos 基础

## 1. Nacos 概述

Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的动态服务发现、配置管理和服务管理平台。

### 1.1 核心功能
- **服务发现**:服务注册与健康检查(支持 HTTP 和 DNS)
- **配置管理**:动态配置、配置版本管理、配置回滚
- **动态 DNS**:支持基于 DNS 协议的服务发现

### 1.2 核心概念
- **命名空间(Namespace)**:租户级别的隔离
- **分组(Group)**:同一命名空间下的服务分组
- **服务(Service)**:一组功能的抽象
- **实例(Instance)**:服务的具体节点
- **配置(Config)**:应用配置项

## 2. 与 Eureka 对比
| 维度 | Nacos | Eureka |
|------|-------|--------|
| CAP | CP + AP 可切换 | AP |
| 配置管理 | 支持 | 不支持 |
| 健康检查 | TCP/HTTP/MySQL | 心跳 |
| 一致性协议 | Raft / Distro | 无 |
26 changes: 26 additions & 0 deletions docs/netty/Netty基础.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Netty 基础

## 1. Netty 概述

Netty 是一个基于 Java NIO 的异步事件驱动的网络应用框架,用于快速开发高性能、高可靠性的网络 IO 程序。

### 1.1 核心特性
- **统一的异步 IO API**:屏蔽 NIO/AIO 底层复杂性
- **Reactor 线程模型**:主从 Reactor 多线程模型
- **零拷贝**:减少内存复制
- **内存池**:ByteBuf 对象池复用
- **编解码框架**:丰富的协议编解码支持

### 1.2 核心组件
- **Channel**:网络连接的抽象
- **ChannelPipeline**:处理器链
- **ChannelHandler**:入站/出站事件处理
- **EventLoop**:处理 IO 事件的事件循环
- **ByteBuf**:字节容器

## 2. 应用场景

- RPC 框架(Dubbo、gRPC)
- 消息中间件
- 网关
- 即时通讯(IM)
27 changes: 27 additions & 0 deletions docs/oath2/Oath2基础.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# OAuth2 基础

## 1. OAuth2 概述

OAuth2 是一个开放标准的授权协议,允许用户授权第三方应用访问其存储在资源服务器上的信息,而不需要将用户名和密码提供给第三方应用。

### 1.1 核心角色
- **Resource Owner**:资源拥有者(用户)
- **Client**:第三方应用
- **Authorization Server**:授权服务器
- **Resource Server**:资源服务器

### 1.2 四种授权模式
- **授权码模式(Authorization Code)**:最安全,用于服务端应用(推荐)
- **隐式模式(Implicit)**:用于浏览器端应用(已不推荐)
- **密码模式(Password)**:用户直接把密码给客户端(已不推荐)
- **客户端凭证模式(Client Credentials)**:用于服务间通信

## 2. JWT 令牌

- **Header**:签名算法 + 令牌类型
- **Payload**:声明(claims)+ 过期时间
- **Signature**:对 Header + Payload 的签名

## 3. Spring Security OAuth2

Spring Security 提供对 OAuth2 的完整支持,包括授权服务器、资源服务器和客户端。
21 changes: 21 additions & 0 deletions docs/seata/Seata基础.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Seata 基础

## 1. Seata 概述

Seata(Simple Extensible Autonomous Transaction Architecture)是阿里巴巴开源的分布式事务解决方案,提供高性能、易于使用的分布式事务服务。

### 1.1 核心模式
- **AT 模式**:自动补偿型事务,基于本地事务的自动回滚(推荐)
- **TCC 模式**:Try-Confirm-Cancel,两阶段补偿型
- **Saga 模式**:长事务补偿,正向服务 + 补偿服务
- **XA 模式**:基于 XA 协议的两阶段提交

### 1.2 核心组件
- **TC(Transaction Coordinator)**:事务协调器,维护全局事务状态
- **TM(Transaction Manager)**:事务管理器,定义全局事务边界
- **RM(Resource Manager)**:资源管理器,管理分支事务

## 2. AT 模式原理
1. **一阶段**:执行本地事务并生成 undo log
2. **二阶段-提交**:异步删除 undo log
3. **二阶段-回滚**:通过 undo log 回滚本地事务
24 changes: 24 additions & 0 deletions docs/sentinel/Sentinel基础.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Sentinel 基础

## 1. Sentinel 概述

Sentinel 是阿里巴巴开源的面向分布式服务架构的流量控制组件,以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

### 1.1 核心特性
- **流量控制**:QPS、并发线程数、调用关系限流
- **熔断降级**:慢调用比例、异常比例、异常数熔断
- **系统自适应保护**:Load、CPU 使用率、RT 自适应限流
- **热点参数限流**:针对特定参数值的精细化流量控制
- **集群流控**:分布式场景下的集群限流

### 1.2 核心概念
- **资源**:需要保护的对象(方法、接口等)
- **规则**:限流/熔断/降级的配置策略
- **Entry**:Sentinel 的入口对象

## 2. 集成方式

- 与 Spring Cloud 集成
- 与 Dubbo 集成
- 与 Gateway 集成
- 独立部署 Sentinel Dashboard 控制台
Loading
Loading