From 3bd0727937eb18bd5bc4f24908b4c848fb35b6b7 Mon Sep 17 00:00:00 2001 From: lile <1250124009@qq.com> Date: Sun, 9 Aug 2026 09:59:58 +0800 Subject: [PATCH] docs: fill 14 empty placeholder files with starter content, add missing SQL links to README --- README.md | 6 +++ .../ClickHouse\345\237\272\347\241\200.md" | 27 ++++++++++++++ .../ElasticSearch\345\237\272\347\241\200.md" | 26 +++++++++++++ .../MongoDB\345\237\272\347\241\200.md" | 29 +++++++++++++++ .../mysql/mysql\345\237\272\347\241\200.md" | 37 +++++++++++++++++++ .../postgresql\345\237\272\347\241\200.md" | 27 ++++++++++++++ .../redis/redis\345\237\272\347\241\200.md" | 29 +++++++++++++++ .../gateway\345\237\272\347\241\200.md" | 24 ++++++++++++ .../mybatis\345\237\272\347\241\200.md" | 25 +++++++++++++ "docs/nacos/Nacos\345\237\272\347\241\200.md" | 25 +++++++++++++ "docs/netty/Netty\345\237\272\347\241\200.md" | 26 +++++++++++++ "docs/oath2/Oath2\345\237\272\347\241\200.md" | 27 ++++++++++++++ "docs/seata/Seata\345\237\272\347\241\200.md" | 21 +++++++++++ .../Sentinel\345\237\272\347\241\200.md" | 24 ++++++++++++ .../Skywalking\345\237\272\347\241\200.md" | 27 ++++++++++++++ 15 files changed, 380 insertions(+) diff --git a/README.md b/README.md index be87963..ab4712e 100644 --- a/README.md +++ b/README.md @@ -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) diff --git "a/docs/database/clickhouse/ClickHouse\345\237\272\347\241\200.md" "b/docs/database/clickhouse/ClickHouse\345\237\272\347\241\200.md" index e69de29..945123e 100644 --- "a/docs/database/clickhouse/ClickHouse\345\237\272\347\241\200.md" +++ "b/docs/database/clickhouse/ClickHouse\345\237\272\347\241\200.md" @@ -0,0 +1,27 @@ +# ClickHouse 基础 + +## 1. ClickHouse 概述 + +ClickHouse 是由 Yandex 开源的列式存储数据库,专为在线分析处理(OLAP)设计。 + +### 1.1 核心特性 +- **列式存储**:按列而非行组织数据,分析查询极快 +- **向量化执行**:SIMD 指令加速计算 +- **数据压缩**:高压缩比减少存储和 IO +- **分布式**:天然支持分区和副本 +- **SQL 支持**:兼容大部分 SQL 标准 + +### 1.2 与 MySQL 对比 +| 维度 | ClickHouse | MySQL | +|------|-----------|-------| +| 定位 | OLAP 分析 | OLTP 事务 | +| 存储 | 列式 | 行式 | +| 查询速度 | 聚合快 | 点查快 | +| 事务 | 不支持 | 支持 | + +## 2. 应用场景 + +- 实时数据分析看板 +- 用户行为分析(点击流) +- 广告投放效果统计 +- 系统监控指标存储 diff --git "a/docs/database/es/ElasticSearch\345\237\272\347\241\200.md" "b/docs/database/es/ElasticSearch\345\237\272\347\241\200.md" index e69de29..2e46608 100644 --- "a/docs/database/es/ElasticSearch\345\237\272\347\241\200.md" +++ "b/docs/database/es/ElasticSearch\345\237\272\347\241\200.md" @@ -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 监控数据存储 +- 数据分析与可视化 diff --git "a/docs/database/mongodb/MongoDB\345\237\272\347\241\200.md" "b/docs/database/mongodb/MongoDB\345\237\272\347\241\200.md" index e69de29..df4933d 100644 --- "a/docs/database/mongodb/MongoDB\345\237\272\347\241\200.md" +++ "b/docs/database/mongodb/MongoDB\345\237\272\347\241\200.md" @@ -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) +- 日志存储与分析 +- 物联网时序数据 +- 用户画像与个性化推荐 +- 移动应用后端 diff --git "a/docs/database/mysql/mysql\345\237\272\347\241\200.md" "b/docs/database/mysql/mysql\345\237\272\347\241\200.md" index e69de29..2ace338 100644 --- "a/docs/database/mysql/mysql\345\237\272\347\241\200.md" +++ "b/docs/database/mysql/mysql\345\237\272\347\241\200.md" @@ -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(事务控制语言) diff --git "a/docs/database/postgresql/postgresql\345\237\272\347\241\200.md" "b/docs/database/postgresql/postgresql\345\237\272\347\241\200.md" index e69de29..f7edd07 100644 --- "a/docs/database/postgresql/postgresql\345\237\272\347\241\200.md" +++ "b/docs/database/postgresql/postgresql\345\237\272\347\241\200.md" @@ -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) +- 金融系统(严格数据完整性) +- 需要自定义类型的业务 diff --git "a/docs/database/redis/redis\345\237\272\347\241\200.md" "b/docs/database/redis/redis\345\237\272\347\241\200.md" index e69de29..d784307 100644 --- "a/docs/database/redis/redis\345\237\272\347\241\200.md" +++ "b/docs/database/redis/redis\345\237\272\347\241\200.md" @@ -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) +- 分布式锁 +- 计数器 +- 排行榜 +- 消息队列 +- 位图统计 diff --git "a/docs/gateway/gateway\345\237\272\347\241\200.md" "b/docs/gateway/gateway\345\237\272\347\241\200.md" index e69de29..0127253 100644 --- "a/docs/gateway/gateway\345\237\272\347\241\200.md" +++ "b/docs/gateway/gateway\345\237\272\347\241\200.md" @@ -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 | +| 线程模型 | 少量线程 | 每连接一线程 | +| 性能 | 高 | 一般 | diff --git "a/docs/mybatis/mybatis\345\237\272\347\241\200.md" "b/docs/mybatis/mybatis\345\237\272\347\241\200.md" index e69de29..9eb08bd 100644 --- "a/docs/mybatis/mybatis\345\237\272\347\241\200.md" +++ "b/docs/mybatis/mybatis\345\237\272\347\241\200.md" @@ -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 | diff --git "a/docs/nacos/Nacos\345\237\272\347\241\200.md" "b/docs/nacos/Nacos\345\237\272\347\241\200.md" index e69de29..1440079 100644 --- "a/docs/nacos/Nacos\345\237\272\347\241\200.md" +++ "b/docs/nacos/Nacos\345\237\272\347\241\200.md" @@ -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 | 无 | diff --git "a/docs/netty/Netty\345\237\272\347\241\200.md" "b/docs/netty/Netty\345\237\272\347\241\200.md" index e69de29..4aa32e8 100644 --- "a/docs/netty/Netty\345\237\272\347\241\200.md" +++ "b/docs/netty/Netty\345\237\272\347\241\200.md" @@ -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) diff --git "a/docs/oath2/Oath2\345\237\272\347\241\200.md" "b/docs/oath2/Oath2\345\237\272\347\241\200.md" index e69de29..8439db3 100644 --- "a/docs/oath2/Oath2\345\237\272\347\241\200.md" +++ "b/docs/oath2/Oath2\345\237\272\347\241\200.md" @@ -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 的完整支持,包括授权服务器、资源服务器和客户端。 diff --git "a/docs/seata/Seata\345\237\272\347\241\200.md" "b/docs/seata/Seata\345\237\272\347\241\200.md" index e69de29..02b9543 100644 --- "a/docs/seata/Seata\345\237\272\347\241\200.md" +++ "b/docs/seata/Seata\345\237\272\347\241\200.md" @@ -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 回滚本地事务 diff --git "a/docs/sentinel/Sentinel\345\237\272\347\241\200.md" "b/docs/sentinel/Sentinel\345\237\272\347\241\200.md" index e69de29..a7ea6b5 100644 --- "a/docs/sentinel/Sentinel\345\237\272\347\241\200.md" +++ "b/docs/sentinel/Sentinel\345\237\272\347\241\200.md" @@ -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 控制台 diff --git "a/docs/skywalking/Skywalking\345\237\272\347\241\200.md" "b/docs/skywalking/Skywalking\345\237\272\347\241\200.md" index e69de29..b806b40 100644 --- "a/docs/skywalking/Skywalking\345\237\272\347\241\200.md" +++ "b/docs/skywalking/Skywalking\345\237\272\347\241\200.md" @@ -0,0 +1,27 @@ +# SkyWalking 基础 + +## 1. SkyWalking 概述 + +Apache SkyWalking 是一个开源的 APM(Application Performance Management)系统,提供分布式链路追踪、服务网格遥测分析、度量聚合和可视化。 + +### 1.1 核心特性 +- **分布式追踪**:跨服务调用链路追踪 +- **服务拓扑**:自动生成服务依赖拓扑图 +- **性能指标**:调用延迟、吞吐量、成功率 +- **告警**:自定义告警规则 +- **多语言支持**:Java、.NET、Node.js、Go 等 + +### 1.2 核心概念 +- **Service**:提供相同功能的一组实例 +- **Service Instance**:服务实例(通常一个进程) +- **Endpoint**:服务中的具体接口/方法 +- **Trace**:一次完整调用链 +- **Span**:调用链中的一个片段 + +## 2. 与 Pinpoint 对比 +| 维度 | SkyWalking | Pinpoint | +|------|-----------|----------| +| 探针方式 | Agent | Agent | +| 存储 | ES、H2、MySQL | HBase | +| 社区活跃度 | 高 | 中 | +| 协议 | gRPC | Thrift |