Skip to content

Commit cf9e96a

Browse files
committed
chore: tweaks
1 parent 566c75d commit cf9e96a

18 files changed

+178
-209
lines changed

README.md

+4
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
<img src="https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png" style="margin: 0 auto;" />
2727
</div>
2828

29+
<!-- #region home -->
30+
2931
## 项目相关
3032

3133
- [项目介绍](./docs/javaguide/intro.md)
@@ -428,3 +430,5 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
428430
如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。
429431

430432
![JavaGuide 官方公众号](https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png)
433+
434+
<!-- #endregion home -->

docs/.vuepress/config.ts

+2
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,7 @@ export default defineUserConfig({
5757

5858
plugins: [searchProPlugin({ indexContent: true })],
5959

60+
pagePatterns: ["**/*.md", "!*.snippet.md", "!.vuepress", "!node_modules"],
61+
6062
shouldPrefetch: false,
6163
});

docs/.vuepress/theme.ts

+2
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,10 @@ export default hopeTheme({
4747
blog: true,
4848
copyright: true,
4949
mdEnhance: {
50+
align: true,
5051
codetabs: true,
5152
container: true,
53+
include: true,
5254
tasklist: true,
5355
},
5456
feed: {

docs/banner.snippet.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
::: center
2+
3+
[![Banner](https://www.yuque.com/snailclimb/rpkqw1/pvak2w?)](https://www.yuque.com/snailclimb/rpkqw1/pvak2w?)
4+
5+
:::

docs/gzh.snippet.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
::: center
2+
3+
[![gzh](https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png)](./about-the-author/zhishixingqiu-two-years.md)
4+
5+
:::

docs/high-availability/limit-request.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ category: 高可用
6363

6464
单机限流可以直接使用 Google Guava 自带的限流工具类 `RateLimiter``RateLimiter` 基于令牌桶算法,可以应对突发流量。
6565

66-
> Guava 地址:https://github.com/google/guava
66+
> Guava 地址:<https://github.com/google/guava>
6767
6868
除了最基本的令牌桶算法(平滑突发限流)实现之外,Guava 的`RateLimiter`还提供了 **平滑预热限流** 的算法实现。
6969

@@ -164,7 +164,7 @@ get 1 tokens: 0.198359s
164164

165165
另外,**Bucket4j** 是一个非常不错的基于令牌/漏桶算法的限流库。
166166

167-
> Bucket4j 地址:https://github.com/vladimir-bukhtoyarov/bucket4j
167+
> Bucket4j 地址:<https://github.com/vladimir-bukhtoyarov/bucket4j>
168168
169169
相对于,Guava 的限流工具类来说,Bucket4j 提供的限流功能更加全面。不仅支持单机限流和分布式限流,还可以集成监控,搭配 Prometheus 和 Grafana 使用。
170170

@@ -174,7 +174,7 @@ Spring Cloud Gateway 中自带的单机限流的早期版本就是基于 Bucket4
174174

175175
Resilience4j 是一个轻量级的容错组件,其灵感来自于 Hystrix。自[Netflix 宣布不再积极开发 Hystrix](https://github.com/Netflix/Hystrix/commit/a7df971cbaddd8c5e976b3cc5f14013fe6ad00e6) 之后,Spring 官方和 Netflix 都更推荐使用 Resilience4j 来做限流熔断。
176176

177-
> Resilience4j 地址: https://github.com/resilience4j/resilience4j
177+
> Resilience4j 地址: <https://github.com/resilience4j/resilience4j>
178178
179179
一般情况下,为了保证系统的高可用,项目的限流和熔断都是要一起做的。
180180

@@ -200,12 +200,12 @@ Resilience4j 不仅提供限流,还提供了熔断、负载保护、自动重
200200

201201
我这里就不放具体的限流脚本代码了,网上也有很多现成的优秀的限流脚本供你参考,就比如 Apache 网关项目 ShenYu 的 RateLimiter 限流插件就基于 Redis + Lua 实现了令牌桶算法/并发令牌桶算法、漏桶算法、滑动窗口算法。
202202

203-
> ShenYu 地址: https://github.com/apache/incubator-shenyu
203+
> ShenYu 地址: <https://github.com/apache/incubator-shenyu>
204204
205205
![ShenYu 限流脚本](https://oss.javaguide.cn/github/javaguide/csdn/e1e2a75f489e4854990dabe3b6cec522.jpg)
206206

207207
## 相关阅读
208208

209-
- 服务治理之轻量级熔断框架 Resilience4j :https://xie.infoq.cn/article/14786e571c1a4143ad1ef8f19
210-
- 超详细的 Guava RateLimiter 限流原理解析:https://cloud.tencent.com/developer/article/1408819
211-
- 实战 Spring Cloud Gateway 之限流篇 👍:https://www.aneasystone.com/archives/2020/08/spring-cloud-gateway-current-limiting.html
209+
- 服务治理之轻量级熔断框架 Resilience4j :<https://xie.infoq.cn/article/14786e571c1a4143ad1ef8f19>
210+
- 超详细的 Guava RateLimiter 限流原理解析:<https://cloud.tencent.com/developer/article/1408819>
211+
- 实战 Spring Cloud Gateway 之限流篇 👍:<https://www.aneasystone.com/archives/2020/08/spring-cloud-gateway-current-limiting.html>

docs/home.md

+54-71
Original file line numberDiff line numberDiff line change
@@ -4,43 +4,30 @@ title: JavaGuide(Java学习&&面试指南)
44
---
55

66
::: tip 友情提示
7+
78
- **面试专版** :准备 Java 面试的小伙伴可以考虑面试专版:**[《Java 面试指北 》](./zhuanlan/java-mian-shi-zhi-bei.md)** (质量很高,专为面试打造,配合 JavaGuide 食用)。
89
- **知识星球** :专属面试小册/一对一交流/简历修改/专属求职指南,欢迎加入 **[JavaGuide 知识星球](./about-the-author/zhishixingqiu-two-years.md)**(点击链接即可查看星球的详细介绍,一定一定一定确定自己真的需要再加入,一定一定要看完详细介绍之后再加我)。
910
- **转载须知** :以下所有文章如非文首说明为转载皆为 JavaGuide 原创,转载在文首注明出处,如发现恶意抄袭/搬运,会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境!
11+
1012
:::
1113

12-
<div align="center">
13-
<p>
14-
<a href="https://github.com/Snailclimb/JavaGuide" target="_blank">
15-
<img src="https://oss.javaguide.cn/github/javaguide/csdn/1c00413c65d1995993bf2b0daf7b4f03.png" width="" />
16-
</a>
17-
</p>
18-
<p>
19-
<a href="https://javaguide.cn/"><img src="https://img.shields.io/badge/阅读-read-brightgreen.svg" alt="阅读" /></a>
20-
<img src="https://img.shields.io/github/stars/Snailclimb/JavaGuide" alt="stars" />
21-
<img src="https://img.shields.io/github/forks/Snailclimb/JavaGuide" alt="forks" />
22-
<img src="https://img.shields.io/github/issues/Snailclimb/JavaGuide" alt="issues" />
23-
</p>
24-
<p>
25-
<a href="https://github.com/Snailclimb/JavaGuide">Github</a> |
26-
<a href="https://gitee.com/SnailClimb/JavaGuide">Gitee</a>
27-
</p>
28-
</div>
29-
<div style="text-align:center">
30-
<p>
31-
<a href="https://javaguide.cn/about-the-author/zhishixingqiu-two-years.html">
32-
<img src="https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png" style="margin: 0 auto;" />
33-
</a>
34-
</p>
35-
</div>
14+
[![logo](https://oss.javaguide.cn/github/javaguide/csdn/1c00413c65d1995993bf2b0daf7b4f03.png)](https://github.com/Snailclimb/JavaGuide)
15+
16+
[![阅读](https://img.shields.io/badge/阅读-read-brightgreen.svg)](https://javaguide.cn/)
17+
![Stars](https://img.shields.io/github/stars/Snailclimb/JavaGuide)
18+
![forks](https://img.shields.io/github/forks/Snailclimb/JavaGuide)
19+
![issues](https://img.shields.io/github/issues/Snailclimb/JavaGuide)
20+
21+
[GitHub](https://github.com/Snailclimb/JavaGuide) | [Gitee](https://gitee.com/SnailClimb/JavaGuide)
3622

23+
<!-- @include: ./banner.snippet.md -->
3724

3825
## 项目相关
3926

40-
* [项目介绍](./javaguide/intro.md)
41-
* [贡献指南](./javaguide/contribution-guideline.md)
42-
* [常见问题](./javaguide/faq.md)
43-
* [项目代办](./javaguide/todo.md)
27+
- [项目介绍](./javaguide/intro.md)
28+
- [贡献指南](./javaguide/contribution-guideline.md)
29+
- [常见问题](./javaguide/faq.md)
30+
- [项目代办](./javaguide/todo.md)
4431

4532
## Java
4633

@@ -74,15 +61,15 @@ title: JavaGuide(Java学习&&面试指南)
7461

7562
**源码分析**
7663

77-
* [ArrayList 源码+扩容机制分析](./java/collection/arraylist-source-code.md)
78-
* [HashMap(JDK1.8)源码+底层数据结构分析](./java/collection/hashmap-source-code.md)
79-
* [ConcurrentHashMap 源码+底层数据结构分析](./java/collection/concurrent-hash-map-source-code.md)
64+
- [ArrayList 源码+扩容机制分析](./java/collection/arraylist-source-code.md)
65+
- [HashMap(JDK1.8)源码+底层数据结构分析](./java/collection/hashmap-source-code.md)
66+
- [ConcurrentHashMap 源码+底层数据结构分析](./java/collection/concurrent-hash-map-source-code.md)
8067

8168
### IO
8269

83-
* [IO 基础知识总结](./java/io/io-basis.md)
84-
* [IO 设计模式总结](./java/io/io-design-patterns.md)
85-
* [IO 模型详解](./java/io/io-model.md)
70+
- [IO 基础知识总结](./java/io/io-basis.md)
71+
- [IO 设计模式总结](./java/io/io-design-patterns.md)
72+
- [IO 模型详解](./java/io/io-model.md)
8673

8774
### 并发
8875

@@ -100,11 +87,11 @@ title: JavaGuide(Java学习&&面试指南)
10087
- [Java 并发容器总结](./java/concurrent/java-concurrent-collections.md)
10188
- [Atomic 原子类总结](./java/concurrent/atomic-classes.md)
10289
- [AQS 详解](./java/concurrent/aqs.md)
103-
- [CompletableFuture详解](./java/concurrent/completablefuture-intro.md)
90+
- [CompletableFuture 详解](./java/concurrent/completablefuture-intro.md)
10491

10592
### JVM (必看 :+1:)
10693

107-
JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle.com/javase/specs/jvms/se8/html/index.html) 和周志明老师的[深入理解Java虚拟机(第3版)》](https://book.douban.com/subject/34907497/) (强烈建议阅读多遍!)。
94+
JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle.com/javase/specs/jvms/se8/html/index.html) 和周志明老师的[深入理解 Java 虚拟机(第 3 版)》](https://book.douban.com/subject/34907497/) (强烈建议阅读多遍!)。
10895

10996
- **[Java 内存区域](./java/jvm/memory-area.md)**
11097
- **[JVM 垃圾回收](./java/jvm/jvm-garbage-collection.md)**
@@ -117,7 +104,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
117104

118105
### 新特性
119106

120-
- **Java 8**[Java 8 新特性总结(翻译)](./java/new-features/java8-tutorial-translate.md)[Java8常用新特性总结](./java/new-features/java8-common-new-features.md)
107+
- **Java 8**[Java 8 新特性总结(翻译)](./java/new-features/java8-tutorial-translate.md)[Java8 常用新特性总结](./java/new-features/java8-common-new-features.md)
121108
- [Java 9 新特性概览](./java/new-features/java9.md)
122109
- [Java 10 新特性概览](./java/new-features/java10.md)
123110
- [Java 11 新特性概览](./java/new-features/java11.md)
@@ -165,7 +152,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
165152
- [线性数据结构 :数组、链表、栈、队列](./cs-basics/data-structure/linear-data-structure.md)
166153
- [](./cs-basics/data-structure/graph.md)
167154
- [](./cs-basics/data-structure/heap.md)
168-
- [](./cs-basics/data-structure/tree.md) :重点关注[红黑树](./cs-basics/data-structure/red-black-tree.md)、B-,B+,B*树、LSM树
155+
- [](./cs-basics/data-structure/tree.md) :重点关注[红黑树](./cs-basics/data-structure/red-black-tree.md)、B-,B+,B\*树、LSM 树
169156

170157
其他常用数据结构 :
171158

@@ -175,28 +162,28 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
175162

176163
算法这部分内容非常重要,如果你不知道如何学习算法的话,可以看下我写的:
177164

178-
* [算法学习书籍+资源推荐](https://www.zhihu.com/question/323359308/answer/1545320858)
179-
* [如何刷Leetcode?](https://www.zhihu.com/question/31092580/answer/1534887374)
165+
- [算法学习书籍+资源推荐](https://www.zhihu.com/question/323359308/answer/1545320858)
166+
- [如何刷 Leetcode?](https://www.zhihu.com/question/31092580/answer/1534887374)
180167

181168
**常见算法问题总结**
182169

183-
* [几道常见的字符串算法题总结 ](./cs-basics/algorithms/string-algorithm-problems.md)
184-
* [几道常见的链表算法题总结 ](./cs-basics/algorithms/linkedlist-algorithm-problems.md)
185-
* [剑指 offer 部分编程题](./cs-basics/algorithms/the-sword-refers-to-offer.md)
186-
* [十大经典排序算法](./cs-basics/algorithms/10-classical-sorting-algorithms.md)
170+
- [几道常见的字符串算法题总结 ](./cs-basics/algorithms/string-algorithm-problems.md)
171+
- [几道常见的链表算法题总结 ](./cs-basics/algorithms/linkedlist-algorithm-problems.md)
172+
- [剑指 offer 部分编程题](./cs-basics/algorithms/the-sword-refers-to-offer.md)
173+
- [十大经典排序算法](./cs-basics/algorithms/10-classical-sorting-algorithms.md)
187174

188-
另外,[GeeksforGeeks]( https://www.geeksforgeeks.org/fundamentals-of-algorithms/) 这个网站总结了常见的算法 ,比较全面系统。
175+
另外,[GeeksforGeeks](https://www.geeksforgeeks.org/fundamentals-of-algorithms/) 这个网站总结了常见的算法 ,比较全面系统。
189176

190177
## 数据库
191178

192179
### 基础
193180

194181
- [数据库基础知识总结](./database/basis.md)
195-
- [NoSQL基础知识总结](./database/nosql.md)
182+
- [NoSQL 基础知识总结](./database/nosql.md)
196183
- [字符集详解](./database/character-set.md)
197184
- SQL :
198-
- [SQL语法基础知识总结](./database/sql/sql-syntax-summary.md)
199-
- [SQL常见面试题总结](./database/sql/sql-questions-01.md)
185+
- [SQL 语法基础知识总结](./database/sql/sql-syntax-summary.md)
186+
- [SQL 常见面试题总结](./database/sql/sql-questions-01.md)
200187

201188
### MySQL
202189

@@ -207,14 +194,14 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
207194

208195
**重要知识点:**
209196

210-
- [MySQL索引详解](./database/mysql/mysql-index.md)
211-
- [MySQL事务隔离级别图文详解)](./database/mysql/transaction-isolation-level.md)
212-
- [MySQL三大日志(binlog、redo log和undo log)详解](./database/mysql/mysql-logs.md)
197+
- [MySQL 索引详解](./database/mysql/mysql-index.md)
198+
- [MySQL 事务隔离级别图文详解)](./database/mysql/transaction-isolation-level.md)
199+
- [MySQL 三大日志(binlog、redo log 和 undo log)详解](./database/mysql/mysql-logs.md)
213200
- [InnoDB 存储引擎对 MVCC 的实现](./database/mysql/innodb-implementation-of-mvcc.md)
214201
- [SQL 语句在 MySQL 中的执行过程](./database/mysql/how-sql-executed-in-mysql.md)
215202
- [MySQL 查询缓存详解](./database/mysql/mysql-query-cache.md)
216-
- [MySQL执行计划分析](./database/mysql/mysql-query-execution-plan.md)
217-
- [MySQL自增主键一定是连续的吗](./database/mysql/mysql-auto-increment-primary-key-continuous.md)
203+
- [MySQL 执行计划分析](./database/mysql/mysql-query-execution-plan.md)
204+
- [MySQL 自增主键一定是连续的吗](./database/mysql/mysql-auto-increment-primary-key-continuous.md)
218205
- [MySQL 时间类型数据存储建议](./database/mysql/some-thoughts-on-database-storage-time.md)
219206
- [MySQL 隐式转换造成索引失效](./database/mysql/index-invalidation-caused-by-implicit-conversion.md)
220207

@@ -227,7 +214,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
227214

228215
**重要知识点:**
229216

230-
- [3种常用的缓存读写策略详解](./database/redis/3-commonly-used-cache-read-and-write-strategies.md)
217+
- [3 种常用的缓存读写策略详解](./database/redis/3-commonly-used-cache-read-and-write-strategies.md)
231218
- [Redis 5 种基本数据结构详解](./database/redis/redis-data-structures-01.md)
232219
- [Redis 3 种特殊数据结构详解](./database/redis/redis-data-structures-02.md)
233220
- [Redis 持久化机制详解](./database/redis/redis-persistence.md)
@@ -242,7 +229,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
242229

243230
## 搜索引擎
244231

245-
[Elasticsearch常见面试题总结(付费)](./database/elasticsearch/elasticsearch-questions-01.md)
232+
[Elasticsearch 常见面试题总结(付费)](./database/elasticsearch/elasticsearch-questions-01.md)
246233

247234
![JavaGuide 官方公众号](https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png)
248235

@@ -258,13 +245,13 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
258245

259246
### Docker
260247

261-
* [Docker 核心概念总结](./tools/docker/docker-intro.md)
262-
* [Docker 实战](./tools/docker/docker-in-action.md)
248+
- [Docker 核心概念总结](./tools/docker/docker-intro.md)
249+
- [Docker 实战](./tools/docker/docker-in-action.md)
263250

264251
### Git
265252

266-
* [Git 核心概念总结](./tools/git/git-intro.md)
267-
* [Github 实用小技巧总结](./tools/git/github-tips.md)
253+
- [Git 核心概念总结](./tools/git/git-intro.md)
254+
- [Github 实用小技巧总结](./tools/git/github-tips.md)
268255

269256
## 系统设计
270257

@@ -275,7 +262,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
275262

276263
- [RestFul API 简明教程](./system-design/basis/RESTfulAPI.md)
277264
- [软件工程简明教程简明教程](./system-design/basis/software-engineering.md)
278-
- [代码命名指南](./system-design/basis/naming.md)
265+
- [代码命名指南](./system-design/basis/naming.md)
279266
- [代码重构指南](./system-design/basis/refactoring.md)
280267
- [单元测试指南](./system-design/basis/unit-test.md)
281268

@@ -310,10 +297,9 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
310297
- [SSO 单点登录详解](./system-design/security/sso-intro.md)
311298
- [权限系统设计详解](./system-design/security/design-of-authority-system.md)
312299

313-
314300
#### 数据脱敏
315301

316-
数据脱敏说的就是我们根据特定的规则对敏感信息数据进行变形,比如我们把手机号、身份证号某些位数使用 * 来代替。
302+
数据脱敏说的就是我们根据特定的规则对敏感信息数据进行变形,比如我们把手机号、身份证号某些位数使用 \* 来代替。
317303

318304
#### 敏感词过滤
319305

@@ -336,7 +322,6 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
336322
- [Raft 算法解读](./distributed-system/theorem&algorithm&protocol/raft-algorithm.md)
337323
- [Gossip 协议详解](./distributed-system/theorem&algorithm&protocol/gossip-protocl.md)
338324

339-
340325
### API 网关
341326

342327
[API 网关详解](./distributed-system/api-gateway.md)
@@ -359,8 +344,8 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
359344

360345
### RPC
361346

362-
* [RPC 基础常见知识点&面试题总结](./distributed-system/rpc/rpc-intro.md)
363-
* [Dubbo 常见知识点&面试题总结](./distributed-system/rpc/dubbo.md)
347+
- [RPC 基础常见知识点&面试题总结](./distributed-system/rpc/rpc-intro.md)
348+
- [Dubbo 常见知识点&面试题总结](./distributed-system/rpc/dubbo.md)
364349

365350
### ZooKeeper
366351

@@ -422,21 +407,19 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
422407

423408
### 灾备设计和异地多活
424409

425-
**灾备** = 容灾+备份。
410+
**灾备** = 容灾+备份。
426411

427-
* **备份** : 将系统所产生的的所有重要数据多备份几份。
428-
* **容灾** : 在异地建立两个完全相同的系统。当某个地方的系统突然挂掉,整个应用系统可以切换到另一个,这样系统就可以正常提供服务了。
412+
- **备份** : 将系统所产生的的所有重要数据多备份几份。
413+
- **容灾** : 在异地建立两个完全相同的系统。当某个地方的系统突然挂掉,整个应用系统可以切换到另一个,这样系统就可以正常提供服务了。
429414

430415
**异地多活** 描述的是将服务部署在异地并且服务同时对外提供服务。和传统的灾备设计的最主要区别在于“多活”,即所有站点都是同时在对外提供服务的。异地多活是为了应对突发状况比如火灾、地震等自然或者人为灾害。
431416

432417
## Star 趋势
433418

434-
![](https://api.star-history.com/svg?repos=Snailclimb/JavaGuide&type=Date)
435-
419+
![Stars](https://api.star-history.com/svg?repos=Snailclimb/JavaGuide&type=Date)
436420

437421
## 公众号
438422

439423
如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号“**JavaGuide**”。
440424

441425
![JavaGuide 官方公众号](https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png)
442-

0 commit comments

Comments
 (0)