@@ -2,7 +2,7 @@ module.exports = {
2
2
port : "8080" ,
3
3
dest : "./dist" ,
4
4
base : "/" ,
5
- // 开启默认预加载js
5
+ // 预加载js
6
6
shouldPrefetch : ( file , type ) => {
7
7
return true ;
8
8
} ,
@@ -60,6 +60,38 @@ module.exports = {
60
60
src : 'https://my.openwrite.cn/js/readmore.js'
61
61
} ,
62
62
] ,
63
+ // 添加 google 分析代码(国内无法访问)
64
+ // [
65
+ // 'script',
66
+ // {
67
+ // charset: 'utf-8',
68
+ // src: 'https://www.googletagmanager.com/gtag/js?id=G-3ZNNG02JRB'
69
+ // },
70
+ // ],
71
+
72
+ // [
73
+ // 'script',{},
74
+ // `
75
+ // window.dataLayer = window.dataLayer || [];
76
+ // function gtag(){dataLayer.push(arguments);}
77
+ // gtag('js', new Date());
78
+
79
+ // gtag('config', 'G-3ZNNG02JRB');
80
+ // `
81
+ // ],
82
+ // 百度统计代码(不生效,暂时弃用)
83
+ // [
84
+ // 'script',{},
85
+ // `
86
+ // var _hmt = _hmt || [];
87
+ // (function() {
88
+ // var hm = document.createElement("script");
89
+ // hm.src = "https://hm.baidu.com/hm.js?d6bf16d55ae32b3e91abf80026997d55";
90
+ // var s = document.getElementsByTagName("script")[0];
91
+ // s.parentNode.insertBefore(hm, s);
92
+ // })();
93
+ // `
94
+ // ],
63
95
] ,
64
96
plugins : [
65
97
[ {
@@ -93,7 +125,6 @@ module.exports = {
93
125
docsRepo : "Java-Edge/Java-Interview-Tutorial" ,
94
126
// 编辑文档的所在目录
95
127
docsDir : 'docs' ,
96
- // 文档放在特定分支:
97
128
docsBranch : 'main' ,
98
129
editLinks : true ,
99
130
sidebarDepth : 0 ,
@@ -104,6 +135,7 @@ module.exports = {
104
135
selectText : "Languages" ,
105
136
editLinkText : "关注GitHub知识库" ,
106
137
lastUpdated : "上次更新" ,
138
+ logo : `/favicon.ico` ,
107
139
nav : [ {
108
140
text : '导读' ,
109
141
link : '/md/other/guide-to-reading.md'
@@ -238,8 +270,13 @@ module.exports = {
238
270
{
239
271
text : 'Netty' ,
240
272
items : [ {
241
- text : 'Netty入门' ,
242
- link : '/md/netty/ChannelPipeline接口.md'
273
+ text : 'Netty基础' ,
274
+ link : '/md/netty/Netty基本组件.md'
275
+ } ,
276
+
277
+ {
278
+ text : 'Netty实战' ,
279
+ link : '/md/netty/Netty堆外内存泄露排查.md'
243
280
} , ]
244
281
} ,
245
282
@@ -256,17 +293,27 @@ module.exports = {
256
293
items : [ {
257
294
text : '00-Kafka专栏大纲' ,
258
295
link : '/md/kafka/00-Kafka专栏大纲.md'
296
+ } ,
297
+
298
+ {
299
+ text : '消息队列基础' ,
300
+ link : '/md/kafka/消息队列面试必问解析.md'
259
301
} , ]
260
302
} ,
261
303
262
304
{
263
305
text : 'RocketMQ' ,
264
306
items : [ {
265
- text : '01-RocketMQ核心内容 ' ,
307
+ text : 'RocketMQ基础 ' ,
266
308
link : '/md/RocketMQ/01-RocketMQ核心内容.md'
267
309
} ,
268
310
{
269
- text : '02-基于电商场景的高并发RocketMQ实战' ,
311
+ text : 'RocketMQ存储设计' ,
312
+ link : '/md/RocketMQ/核心概念.md'
313
+ } ,
314
+
315
+ {
316
+ text : 'RocketMQ业务实战' ,
270
317
link : '/md/RocketMQ/02-基于电商场景的高并发RocketMQ实战.md'
271
318
} ,
272
319
]
@@ -682,7 +729,7 @@ module.exports = {
682
729
} ,
683
730
{
684
731
text : 'LLM应用开发' ,
685
- link : '/md/AI/AI 大模型企业应用实战 '
732
+ link : '/md/AI/AI大模型企业应用实战 '
686
733
} ,
687
734
{
688
735
text : 'LangChain' ,
@@ -1183,7 +1230,7 @@ module.exports = {
1183
1230
"SpringMVC-DispatcherServlet-doDispatch" ,
1184
1231
]
1185
1232
} ,
1186
-
1233
+
1187
1234
{
1188
1235
title : "SpringBoot" ,
1189
1236
collapsable : false ,
@@ -1205,6 +1252,7 @@ module.exports = {
1205
1252
"01-Jetty架构设计之Connector、Handler组件" ,
1206
1253
"03-Tomcat的生命周期管理" ,
1207
1254
"04-Tomcat实现热部署、热加载原理解析" ,
1255
+ "05-Tomcat如何打破双亲委派机制实现隔离Web应用的?" ,
1208
1256
]
1209
1257
} ] ,
1210
1258
@@ -1262,6 +1310,9 @@ module.exports = {
1262
1310
children : [
1263
1311
"integrating-event-driven-microservices-with-request-response-APIs" ,
1264
1312
"decouple-event-retrieval-from-processing" ,
1313
+ "use-circuit-breaker-to-pause-event-retrieval" ,
1314
+ "rate-limit-event-processing" ,
1315
+ "event-versioning" ,
1265
1316
]
1266
1317
} ,
1267
1318
{
@@ -1290,6 +1341,8 @@ module.exports = {
1290
1341
"mysql-read-write-splitting" ,
1291
1342
"为什么临时表可以重名?" ,
1292
1343
"MySQL深分页调优实战" ,
1344
+ "为什么阿里不推荐使用MySQL分区表?" ,
1345
+ "一文看懂这篇MySQL的锁机制" ,
1293
1346
]
1294
1347
} ] ,
1295
1348
@@ -1383,7 +1436,7 @@ module.exports = {
1383
1436
} ] ,
1384
1437
1385
1438
"/md/netty/" : [ {
1386
- title : "Netty " ,
1439
+ title : "Netty基础 " ,
1387
1440
collapsable : false ,
1388
1441
sidebarDepth : 0 ,
1389
1442
children : [
@@ -1394,7 +1447,16 @@ module.exports = {
1394
1447
"11-4-解码基于分隔符的协议和基于长度的协议" ,
1395
1448
"18-检测新连接" ,
1396
1449
]
1397
- } ] ,
1450
+ } ,
1451
+
1452
+ {
1453
+ title : "Netty实战" ,
1454
+ collapsable : false ,
1455
+ sidebarDepth : 0 ,
1456
+ children : [
1457
+ "Netty堆外内存泄露排查" ,
1458
+ ]
1459
+ } , ] ,
1398
1460
1399
1461
"/md/kafka" : [ {
1400
1462
title : "Kafka" ,
@@ -1408,22 +1470,54 @@ module.exports = {
1408
1470
"09-消息队列的消息大量积压怎么办?" ,
1409
1471
"15-基于kafka实现延迟队列"
1410
1472
]
1411
- } ] ,
1412
-
1413
- "/md/RocketMQ/" : [ {
1414
- title : "RocketMQ " ,
1473
+ } ,
1474
+
1475
+ {
1476
+ title : "消息队列基础 " ,
1415
1477
collapsable : false ,
1416
1478
sidebarDepth : 0 ,
1417
1479
children : [
1418
- "01-RocketMQ核心内容" ,
1419
- "01-基本概念" ,
1420
- "02-下载安装" ,
1421
- "03-消息的有序性" ,
1422
- "04 - 订阅机制和定时消息" ,
1423
- "05 - 批量消息和事务消息" ,
1424
- "02-基于电商场景的高并发RocketMQ实战" ,
1480
+ "消息队列面试必问解析" ,
1425
1481
]
1426
- } ] ,
1482
+ } , ] ,
1483
+
1484
+ "/md/RocketMQ/" : [ {
1485
+ title : "RocketMQ基础" ,
1486
+ collapsable : false ,
1487
+ sidebarDepth : 0 ,
1488
+ children : [
1489
+ "01-RocketMQ核心内容" ,
1490
+ "RocketMQ各版本新特性" ,
1491
+ "01-基本概念" ,
1492
+ "02-下载安装" ,
1493
+ "03-消息的有序性" ,
1494
+ "04 - 订阅机制" ,
1495
+ "RocketMQ的延时消息" ,
1496
+ "RocketMQ 5.x任意时间延时消息原理" ,
1497
+ "05 - 批量消息和事务消息" ,
1498
+ ]
1499
+ } ,
1500
+
1501
+ {
1502
+ title : "RocketMQ存储设计" ,
1503
+ collapsable : false ,
1504
+ sidebarDepth : 0 ,
1505
+ children : [
1506
+ "核心概念" ,
1507
+ ]
1508
+ } ,
1509
+
1510
+ {
1511
+ title : "RocketMQ业务实战" ,
1512
+ collapsable : false ,
1513
+ sidebarDepth : 0 ,
1514
+ children : [
1515
+ "02-基于电商场景的高并发RocketMQ实战" ,
1516
+ "RocketMQ在基金大厂的分布式事务实践" ,
1517
+ ]
1518
+ } ,
1519
+
1520
+ ] ,
1427
1521
"/md/rabbitmq" : [ {
1428
1522
title : "RabbitMQ" ,
1429
1523
collapsable : false ,
@@ -1730,7 +1824,7 @@ module.exports = {
1730
1824
collapsable : false ,
1731
1825
sidebarDepth : 0 ,
1732
1826
children : [
1733
- "AI 大模型企业应用实战 " ,
1827
+ "AI大模型企业应用实战 " ,
1734
1828
"00-为什么要学习大模型" ,
1735
1829
"01-大语言模型发展" ,
1736
1830
"02-domestic-and-international-llm-multi-model-strong-applications" ,
@@ -1805,6 +1899,7 @@ module.exports = {
1805
1899
sidebarDepth : 0 ,
1806
1900
children : [
1807
1901
"00-introduce-to-LangGraph" ,
1902
+ "langgraph-studio" ,
1808
1903
]
1809
1904
} ,
1810
1905
] ,
@@ -1824,6 +1919,16 @@ module.exports = {
1824
1919
"阿里P8架构师都是怎么分析软件模型的?" ,
1825
1920
]
1826
1921
} ,
1922
+ {
1923
+ title : "设计原则" ,
1924
+ collapsable : false ,
1925
+ sidebarDepth : 0 ,
1926
+ children : [
1927
+ "阿里P8架构师都是怎么分析软件模型的?" ,
1928
+ "rest-api-design-resource-modeling" ,
1929
+ ]
1930
+ } ,
1931
+
1827
1932
{
1828
1933
title : "设计模式" ,
1829
1934
collapsable : false ,
@@ -1894,6 +1999,7 @@ module.exports = {
1894
1999
"Flink部署及任务提交" ,
1895
2000
"flink-programming-paradigms-core-concepts" ,
1896
2001
"flink-architecture" ,
2002
+ "flink-broadcast-state" ,
1897
2003
"flink-state-management" ,
1898
2004
"flink-state-backend" ,
1899
2005
"05-Flink实战DataStream API编程" ,
0 commit comments