Skip to content

Commit c4f46c1

Browse files
committed
Merge branch '2.0'
2 parents ec073dd + 866efbc commit c4f46c1

16 files changed

+791
-80
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ src/.vuepress/dist/
1212
/.stignore
1313
/docs/.vuepress/dist/
1414
/docs/.vuepress/.cache/
15+
.history

docs/.vuepress/config.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,18 +117,18 @@ export default defineUserConfig({
117117
},
118118

119119
/* 本地搜索, 默认启用 */
120-
search: false,
120+
// search: true,
121121

122122
/**
123123
* Algolia DocSearch
124124
* 启用此搜索需要将 本地搜索 search 设置为 false
125125
* @see https://theme-plume.vuejs.press/config/plugins/search/#algolia-docsearch
126126
*/
127-
docsearch: {
127+
/*docsearch: {
128128
appId: '1NIN4Y2MTP',
129129
apiKey: 'f186bb9e6b981273456b9afcde2924aa',
130130
indexName: 'yunzeblog',
131-
},
131+
},*/
132132

133133
/* 文章字数统计、阅读时间,设置为 false 则禁用 */
134134
// readingTime: true,

docs/manual/314.curl 命令操作详尽指南.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
---
2-
title: 314.curl 命令操作详尽指南
2+
title: curl 命令操作详尽指南
33
createTime: 2026/02/12 10:42:35
44
permalink: /article/gajc3rqz/
55
---
6-
# curl 命令操作详尽指南
6+
`curl` 是一个强大的命令行工具,用于在服务器之间传输数据。它支持多种协议(HTTP、HTTPS、FTP、SFTP、LDAP 等),尤其擅长发送和接收 **HTTP/HTTPS 请求**
7+
8+
<!-- more -->
9+
10+
711

812
> **适用对象**:开发者、运维工程师、测试人员、自动化脚本编写者
913
> **目标**:掌握 `curl` 的核心用法,高效调试 API、下载文件、模拟请求
@@ -19,7 +23,7 @@ permalink: /article/gajc3rqz/
1923
- 模拟浏览器行为
2024
- ✅ 测试接口认证、重定向、超时等场景
2125

22-
> 💡 **提示**:熟练使用 `curl` 可替代 Postman 等图形化工具进行快速测试!
26+
> 💡 **提示**:熟练使用 `curl` 可临时替代 apifox、Postman 等图形化工具进行快速测试!
2327
2428
------
2529

docs/notes/classification/1.MySQL/17.MySQL有哪些锁.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@ flush tables with read lock;
6969

7070
### 乐观锁(OCC)
7171

72+
> 乐观锁就是CAS思想在数据库层面的应用。
73+
>
74+
> 无锁并发控制机制,核心逻辑就是:“**只有当当前值等于预期旧值时,才将其更新为新值;否则失败。**
75+
7276
乐观锁(Optimistic Concurrency Control)的思想是,持有一种乐观的态度,认为即使是在并发的场景下,对于数据资源的访问,也不会出现冲突,所以不会去加锁,而是在数据进行提交更新操作的时候,才会去判断此次提交是否存在冲突,如果冲突了,便在代码逻辑层面去处理冲突之后的处理方案,是直接结束本次更新操作,还是重新再去尝试更新。
7377

7478

@@ -141,4 +145,6 @@ select * from tablename where id = 'xxxx' lock in share mode;
141145
select * from tablename where id = 'xxxx' for update
142146
```
143147

144-
在操作delete、update、insert语句时,数据库会自动加上排他锁(如果条件有索引,则是加的行级锁,如果条件没有索引,则加的是表级锁)。
148+
在操作delete、update、insert语句时,数据库会自动加上排他锁(如果条件有索引,则是加的行级锁,如果条件没有索引,则加的是表级锁)。
149+
150+

docs/notes/classification/1.MySQL/7.Innodb原理和MySQL日志机制.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ MySQL默认是只write写入到page cache里面,然后再调用OS操作系统
191191
mysqlbinlog ‐‐no‐defaults ‐v ‐‐base64‐output=decode‐rows D:/dev/mysql‐5.7.25‐winx64/data/mysql‐binlog.000007
192192

193193
# 查看bin‐log二进制文件(带查询条件)
194-
mysqlbinlog ‐‐no‐defaults ‐v ‐‐base64‐output=decode‐rows D:/dev/mysql‐5.7.25‐winx64/data/mysql‐binlog.000007 start‐datetime="2023‐01‐21 00:00:00" stop‐datetime="2023‐02‐01 00:00:00" start‐position="5000" stop‐position="20000"
194+
mysqlbinlog ‐‐no‐defaults ‐v ‐‐base64‐output=decode‐rows D:/dev/mysql‐5.7.25‐winx64/data/mysql‐binlog.000007 --start‐datetime="2023‐01‐21 00:00:00" --stop‐datetime="2023‐02‐01 00:00:00" --start‐position="5000" --stop‐position="20000"
195195
```
196196

197197

docs/manual/340.RocketMQ的安装部署.md renamed to docs/notes/classification/3.MQ/8.RocketMQ的安装部署.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,25 @@ RocketMQ消息中间件单机于集群模式详细部署操作手册
1313

1414
### 解压缩包
1515

16-
![image-20250906221934294](images/image-20250906221934294.png)
16+
![image-20250906221934294](../../../manual/images/image-20250906221934294.png)
1717

1818

1919

2020
### 调整启用脚本
2121

2222
#### runserver.sh
2323

24-
![image-20250906222607460](images/image-20250906222607460.png)
24+
![image-20250906222607460](../../../manual/images/image-20250906222607460.png)
2525

26-
![image-20250906222226007](images/image-20250906222226007.png)
26+
![image-20250906222226007](../../../manual/images/image-20250906222226007.png)
2727

2828

2929

3030
#### runbroker.sh
3131

32-
![image-20250906222726588](images/image-20250906222726588.png)
32+
![image-20250906222726588](../../../manual/images/image-20250906222726588.png)
3333

34-
![image-20250906222846379](images/image-20250906222846379.png)
34+
![image-20250906222846379](../../../manual/images/image-20250906222846379.png)
3535

3636

3737

@@ -43,15 +43,15 @@ nohup bin/mqnamesrv &
4343

4444

4545

46-
![image-20250906223427632](images/image-20250906223427632.png)
46+
![image-20250906223427632](../../../manual/images/image-20250906223427632.png)
4747

4848
查看日志
4949

5050
```bash
5151
tail -n 10 nohup.out
5252
```
5353

54-
![image-20250906223534799](images/image-20250906223534799.png)
54+
![image-20250906223534799](../../../manual/images/image-20250906223534799.png)
5555

5656
启动成功
5757

@@ -70,7 +70,7 @@ source /etc/profile
7070

7171
添加nameserver服务的地址环境变量
7272

73-
![image-20250907083104785](images/image-20250907083104785.png)
73+
![image-20250907083104785](../../../manual/images/image-20250907083104785.png)
7474

7575

7676

@@ -84,7 +84,7 @@ source /etc/profile
8484
nohup bin/mqbroker &
8585
```
8686

87-
![image-20250906223748367](images/image-20250906223748367.png)
87+
![image-20250906223748367](../../../manual/images/image-20250906223748367.png)
8888

8989

9090

@@ -94,13 +94,13 @@ nohup bin/mqbroker &
9494
tail -n 10 nohup.out
9595
```
9696

97-
![image-20250906223823669](images/image-20250906223823669.png)
97+
![image-20250906223823669](../../../manual/images/image-20250906223823669.png)
9898

9999
启动成功
100100

101101

102102

103-
![image-20250906223853914](images/image-20250906223853914.png)
103+
![image-20250906223853914](../../../manual/images/image-20250906223853914.png)
104104

105105

106106

@@ -130,7 +130,7 @@ docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=19
130130

131131
访问 http://ip:8082
132132

133-
![image-20250907091124484](images/image-20250907091124484.png)
133+
![image-20250907091124484](../../../manual/images/image-20250907091124484.png)
134134

135135

136136

@@ -316,7 +316,7 @@ nohup bin/mqbroker -c ./conf/2m-2s-async/broker-b.properties &
316316
nohup bin/mqbroker -c ./conf/2m-2s-async/broker-a-s.properties &
317317
```
318318

319-
![image-20250907124805678](images/image-20250907124805678.png)
319+
![image-20250907124805678](../../../manual/images/image-20250907124805678.png)
320320

321321

322322

docs/notes/classification/4.JVM/3.JVM内存模型深度剖析与优化.md

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ permalink: /classification/zpkbpv0e/
1515

1616
##
1717

18-
只要开始一个线程,就会在 **JVM虚拟机的栈内存空间 ** 里开辟一个小空间,专门用于存这个线程的局部变量等。
18+
只要开始一个线程,就会在 **JVM虚拟机的栈内存空间** 里开辟一个小空间,专门用于存这个线程的局部变量等。
1919

2020
![一个线程的内存模型](images/一个线程的内存模型.png)
2121

@@ -130,6 +130,36 @@ publuc class Demo {
130130

131131

132132

133+
> 堆又分为年轻代和老年代
134+
>
135+
> 一般是年轻代占1/3,老年代占2/3
136+
>
137+
> 年轻代:Eden区(8/10)和Survivor区(两个1/10)
138+
>
139+
> 如果确认系统绝大部分都是“朝生夕死”的对象(方法执行完就回收的对象),则可以年轻代大一些,老年代小一些,减少系统full gc次数。
140+
141+
142+
143+
new一个对象,对象会放到Eden区里,如果Eden区放满了,那么字节码执行引擎会建一个minor gc垃圾回收的线程,去判断将对象里没有引用其他的无用对象给清理掉,对象里有引用其他对象的会直接复制到Survivor区;
144+
145+
(栈里面找局部变量,方法区里找静态变量,这些就是gc root,从这些变量开始找这些变量所指向的堆里的对象有没有成员变量引用其他对象,如果有则复制到Survivor区,没有则删除)
146+
147+
当Eden区又满了之后,这次会清理Eden区和两Survivor区中有存对象的区,gc会将Eden区和有存对象的一个Survivor区里无用的对象清理掉,有用的对象则会移到另一个此时还没有存对象的Survivor区;
148+
149+
分代年龄:每经历一次gc回收,没有被回收的对象的分代年龄就会加1,一般情况下分代年龄达到15就会转移到老年代;
150+
151+
当老年代区域也放满之后,会先触发full gc,full gc与minor gc类似,但是full gc是回收整个堆空间和方法区;如果此时老年代区域还是满的,则会触发OOM,报内存溢出异常;
152+
153+
**STW(stop the world):** minor gc和full gc都可能会触发STW机制,STW会停止所有的用户线程,gc等是后台线程;(用户会感觉到网站卡了一下);
154+
155+
JVM调优的目的是减少full gc和一次full gc的执行时间(因为full gc执行一次的时间相对来说比较长,所以STW的时间也会比较长);minor gc的执行时间几乎不会有影响,所以执行STW也不会有影响;
156+
157+
JVM为什么要设计STW机制?
158+
159+
防止在进行GC的过程中,已经找到了一部分的有用对象,但是这个对象所属的线程执行完了,栈内存空间被释放了,意味着原先找出来的有用对象在GC还没有结束的时候变成了垃圾对象,意味着之前的GC分辨对象有用无用的操作白做了,所以干脆直接暂停了所有线程;
160+
161+
162+
133163
## 方法区
134164

135165
主要用于常量(在**编译期**就确定的各种字面量和符号引用)、静态变量、类信息。

docs/notes/classification/4.JVM/4.JVM对象创建与内存分配机制深度剖析.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ permalink: /classification/6q23pm3f/
1111

1212
JVM收到new的指令时,去检查 **类文件常量池** 里的 **符号引用** ,<u>如果这个对象有引用其他的对象,就会先暂停本对象的创建,先去创建引用的对象</u> (如果这个引用对象的类还没有被加载、解析、初始化,就需要先执行类加载过程)。
1313

14-
关于常量池的概念可参考《 [JVM 中的常量池到底在哪儿](7.JVM 中的常量池到底在哪.md) 》
14+
关于常量池的概念可参考《 [JVM 中的常量池到底在哪](7.JVM中的常量池到底在哪.md)
1515

1616
### 2. 加载类
1717

docs/notes/classification/4.JVM/5.垃圾收集器ParNew&CMS与底层三色标记算法详解.md renamed to docs/notes/classification/4.JVM/5.垃圾收集器与底层三色标记算法详解.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ Serial Old收集器是Serial收集器的老年代版本,当下其主要作用
6666

6767
### Parallel
6868

69+
> jdk8高版本默认的垃圾回收
70+
6971
相当于是Serial收集器的多线程版本,默认的收集线程数跟cpu核数相同。
7072

7173
Parallel Scavenge收集器关注点是吞吐量(高效率的利用CPU),就是在一个时间段内,CPU用在业务代码上的时间尽可能的多,所以在执行垃圾收集的时候,希望用所有的CPU资源去尽可能快的完成垃圾收集(长期小痛不如短期大痛一下)。
File renamed without changes.

0 commit comments

Comments
 (0)