From 9e3155831dd2a0329329747c31513ac7ed428898 Mon Sep 17 00:00:00 2001 From: zhihuaiwen Date: Wed, 24 Jan 2024 18:30:22 +0800 Subject: [PATCH] update --- SUMMARY.md | 4 +- docs/.vuepress/config.ts | 13 + docs/.vuepress/navbar.ts | 4 +- docs/.vuepress/public/logo.svg | 102 ++- docs/.vuepress/public/me.png | Bin 49565 -> 0 bytes docs/.vuepress/sidebar/database.ts | 102 +++ docs/.vuepress/sidebar/index.ts | 614 ++---------------- docs/.vuepress/sidebar/mysql.ts | 14 + docs/.vuepress/theme.ts | 2 +- docs/README.md | 4 +- .../elasticsearch}/README.md | 0 docs/{ => database}/mysql/1mysql.md | 0 .../database/mysql/README.md | 0 .../database/mysql/gap\351\224\201.md" | 0 ...241\214\350\256\241\345\210\222explain.md" | 0 ...56\345\272\223\347\274\223\345\255\230.md" | 0 docs/home.md | 4 +- ...03\344\274\230\345\217\202\346\225\260.md" | 1 + docs/java/README.md | 15 - "docs/java/es8.0\347\273\203\344\271\240.md" | 2 +- docs/java/serverlog.md | 2 +- ...03\344\274\230\350\277\207\347\250\213.md" | 1 + ...05\345\255\230\345\261\217\351\232\234.md" | 1 + docs/open-source-project/README.md | 1 + ...62\344\270\216\346\236\266\346\236\204.md" | 2 +- ...ne\347\232\204\344\275\277\347\224\250.md" | 7 +- ...32\346\227\266\344\273\273\345\212\241.md" | 2 +- ...45\345\277\227\347\263\273\347\273\237.md" | 2 +- ...06\347\276\244\351\203\250\347\275\262.md" | 1 + ...56\345\272\223\345\244\207\344\273\275.md" | 1 + ...74\347\232\204\346\217\222\344\273\266.md" | 1 + ...05\346\204\237\345\210\206\346\236\220.md" | 2 +- ...47\350\203\275\344\274\230\345\214\226.md" | 2 +- package.json | 1 + 34 files changed, 311 insertions(+), 596 deletions(-) delete mode 100644 docs/.vuepress/public/me.png create mode 100644 docs/.vuepress/sidebar/database.ts create mode 100644 docs/.vuepress/sidebar/mysql.ts rename docs/{mysql => database/elasticsearch}/README.md (100%) rename docs/{ => database}/mysql/1mysql.md (100%) rename "docs/java/\351\224\201.md" => docs/database/mysql/README.md (100%) rename "docs/mysql/gap\351\224\201.md" => "docs/database/mysql/gap\351\224\201.md" (100%) rename "docs/mysql/\346\211\247\350\241\214\350\256\241\345\210\222explain.md" => "docs/database/mysql/\346\211\247\350\241\214\350\256\241\345\210\222explain.md" (100%) rename "docs/mysql/\346\225\260\346\215\256\345\272\223\347\274\223\345\255\230.md" => "docs/database/mysql/\346\225\260\346\215\256\345\272\223\347\274\223\345\255\230.md" (100%) delete mode 100644 docs/java/README.md create mode 100644 docs/open-source-project/README.md diff --git a/SUMMARY.md b/SUMMARY.md index 70eae6b7..fd352743 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -29,8 +29,8 @@ * [六、云原生](docs/cloudnative/README.md) * [七、redis](docs/redis/README.md) * [7.1 redis缓存.md](docs/redis/redis缓存.md) -* [八、mysql](docs/mysql/README.md) - * [8.1 mysql缓存.md](docs/mysql/数据库缓存.md) +* [八、mysql](docs/database/mysql/README.md) + * [8.1 mysql缓存.md](docs/database/mysql/数据库缓存.md) * [面试](docs/interview/README.md) * [算法](docs/interview/算法.md) diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts index 719e1070..16506cff 100644 --- a/docs/.vuepress/config.ts +++ b/docs/.vuepress/config.ts @@ -1,11 +1,24 @@ import {defineUserConfig} from "vuepress"; import theme from "./theme.js"; +import { commentPlugin } from "vuepress-plugin-comment2"; +import {comment} from "vuepress-theme-hope"; export default defineUserConfig({ dest: "./dist", title: "个人博客", description: "个人博客", lang: "zh-CN", + plugins: [ + // https://plugin-comment2.vuejs.press/zh/config/giscus.html#darktheme + commentPlugin({ + provider: "Giscus", + comment: true, //启用评论功能 + repo: "Zephery/MyWebsite", //远程仓库 + repoId: "MDEwOlJlcG9zaXRvcnkyMDM2MDIyMDQ=", //对应自己的仓库Id + category: "General", + categoryId: "DIC_kwDODCK5HM4Ccp32" //对应自己的分类Id + }), + ], head: [ // meta ["meta", {name: "robots", content: "all"}], diff --git a/docs/.vuepress/navbar.ts b/docs/.vuepress/navbar.ts index c6e5f3bb..aca13a6d 100644 --- a/docs/.vuepress/navbar.ts +++ b/docs/.vuepress/navbar.ts @@ -1,8 +1,8 @@ import { navbar } from "vuepress-theme-hope"; export default navbar([ - { text: "面试指南", icon: "java", link: "/home.md" }, - { text: "开源项目", icon: "github", link: "/open-source-project/" }, + { text: "Java", icon: "java", link: "/index" }, + { text: "数据库", icon: "database", link: "/database/" }, { text: "技术书籍", icon: "book", link: "/books/" }, // { // text: "程序人生", diff --git a/docs/.vuepress/public/logo.svg b/docs/.vuepress/public/logo.svg index da6b683d..d0df14c8 100644 --- a/docs/.vuepress/public/logo.svg +++ b/docs/.vuepress/public/logo.svg @@ -1 +1,101 @@ - \ No newline at end of file + + + + + + + + + + + \ No newline at end of file diff --git a/docs/.vuepress/public/me.png b/docs/.vuepress/public/me.png deleted file mode 100644 index be8f2106c6cabd0937341ffcffe6c92f04927524..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49565 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 iM4xJ61jH74hvUEY!eZvwrTIeu0000偏向锁—>轻量级锁—>重量级锁,锁的升级顺序是从无锁到重量级的顺序,锁只能升级不能降级。 - -在说锁的升级原理之前呢,我们先了解下我们的对象,大部分对象都是存储在堆中,而对象的组成主要有三部分:对象头、实例数据、对齐填充; - -对象头 diff --git "a/docs/java/es8.0\347\273\203\344\271\240.md" "b/docs/java/es8.0\347\273\203\344\271\240.md" index aa89ae67..929631d5 100644 --- "a/docs/java/es8.0\347\273\203\344\271\240.md" +++ "b/docs/java/es8.0\347\273\203\344\271\240.md" @@ -372,7 +372,7 @@ private void executeFetch(...) { image-20220316000309117 -counter是一个收集器CountedCollector,onResult(result)主要是每次收到的shard数据存放,并且执行一次countDown,当所有shard数据收集完之后,然后触发一次finishPhase。 +counter是一个收集器CountedCollector,onResult(result)主要是每次收到的shard数据存放,并且执行一次countDown,当所有shard数据收集完之后,然后触发一次finishPhase。 ``` # CountedCollector.class diff --git a/docs/java/serverlog.md b/docs/java/serverlog.md index 81e31aa9..1795e7b4 100644 --- a/docs/java/serverlog.md +++ b/docs/java/serverlog.md @@ -1,4 +1,4 @@ -# 2017-09-23 +# 被挖矿攻击 服务器被黑,进程占用率高达99%,查看了一下,是/usr/sbin/bashd的原因,怎么删也删不掉,使用ps查看: ![](http://image.wenzhihuai.com/images/553ac1ca20170923033013.png) stratum+tcp://get.bi-chi.com:3333 -u 47EAoaBc5TWDZKVaAYvQ7Y4ZfoJMFathAR882gabJ43wHEfxEp81vfJ3J3j6FQGJxJNQTAwvmJYS2Ei8dbkKcwfPFst8FhG diff --git "a/docs/java/\344\270\200\346\254\241jvm\350\260\203\344\274\230\350\277\207\347\250\213.md" "b/docs/java/\344\270\200\346\254\241jvm\350\260\203\344\274\230\350\277\207\347\250\213.md" index 11f6cff7..7388e66a 100644 --- "a/docs/java/\344\270\200\346\254\241jvm\350\260\203\344\274\230\350\277\207\347\250\213.md" +++ "b/docs/java/\344\270\200\346\254\241jvm\350\260\203\344\274\230\350\277\207\347\250\213.md" @@ -1,3 +1,4 @@ +# 一次jvm调优过程 前端时间把公司的一个分布式定时调度的系统弄上了容器云,部署在kubernetes,在容器运行的动不动就出现问题,特别容易jvm溢出,导致程序不可用,终端无法进入,日志一直在刷错误,kubernetes也没有将该容器自动重启。业务方基本每天都在反馈task不稳定,后续就协助接手看了下,先主要讲下该程序的架构吧。 该程序task主要分为三个模块: console进行一些cron的配置(表达式、任务名称、任务组等); diff --git "a/docs/java/\345\206\205\345\255\230\345\261\217\351\232\234.md" "b/docs/java/\345\206\205\345\255\230\345\261\217\351\232\234.md" index be1f79c9..f9ec8f2b 100644 --- "a/docs/java/\345\206\205\345\255\230\345\261\217\351\232\234.md" +++ "b/docs/java/\345\206\205\345\255\230\345\261\217\351\232\234.md" @@ -1,3 +1,4 @@ +# 内存屏障 四个内存屏障指令:LoadLoad` , `StoreStore` , `LoadStore` , `StoreLoad diff --git a/docs/open-source-project/README.md b/docs/open-source-project/README.md new file mode 100644 index 00000000..c922b15a --- /dev/null +++ b/docs/open-source-project/README.md @@ -0,0 +1 @@ +jfaowejfoewj \ No newline at end of file diff --git "a/docs/personalwebsite/1.\345\216\206\345\217\262\344\270\216\346\236\266\346\236\204.md" "b/docs/personalwebsite/1.\345\216\206\345\217\262\344\270\216\346\236\266\346\236\204.md" index b74c5bf0..e6617fba 100644 --- "a/docs/personalwebsite/1.\345\216\206\345\217\262\344\270\216\346\236\266\346\236\204.md" +++ "b/docs/personalwebsite/1.\345\216\206\345\217\262\344\270\216\346\236\266\346\236\204.md" @@ -1,4 +1,4 @@ -# 个人网站的建立 +# 1.历史与架构 各位大佬瞄一眼[我的个人网站](http://www.wenzhihuai.com/)呗 。如果觉得不错,希望能在GitHub上麻烦给个star,GitHub地址[https://github.com/Zephery/newblog](https://github.com/Zephery/newblog) 。 大学的时候萌生的一个想法,就是建立一个个人网站,前前后后全部推翻重构了4、5遍,现在终于能看了,下面是目前的首页。 diff --git "a/docs/personalwebsite/2.Lucene\347\232\204\344\275\277\347\224\250.md" "b/docs/personalwebsite/2.Lucene\347\232\204\344\275\277\347\224\250.md" index 4c22d003..9dfbf303 100644 --- "a/docs/personalwebsite/2.Lucene\347\232\204\344\275\277\347\224\250.md" +++ "b/docs/personalwebsite/2.Lucene\347\232\204\344\275\277\347\224\250.md" @@ -1,3 +1,4 @@ +# 2.Lucene的使用 首先,帮忙点击一下我的网站[http://www.wenzhihuai.com/](http://www.wenzhihuai.com/) 。谢谢啊,如果可以,GitHub上麻烦给个star,以后面试能讲讲这个项目,GitHub地址[https://github.com/Zephery/newblog](https://github.com/Zephery/newblog) 。 ### Lucene的整体架构 @@ -120,7 +121,7 @@ for (ScoreDoc scoreDoc : docs.scoreDocs) { //取出每条查询结果 } ``` 结果 -```java +```html Java堆.栈和常量池 笔记 ``` 5. 分页 @@ -155,7 +156,7 @@ suggest的原理[看这](http://iamyida.iteye.com/blog/2205114),以及索引结 #### 使用: 1. 导入maven包 -```java +```xml org.apache.lucene lucene-suggest @@ -167,12 +168,14 @@ suggest的原理[看这](http://iamyida.iteye.com/blog/2205114),以及索引结 public class Blog implements Serializable { ``` 3. 实现InputIterator接口 +```text InputIterator的几个方法: long weight():返回的权重值,大小会影响排序,默认是1L BytesRef payload():对某个对象进行序列化 boolean hasPayloads():是否有设置payload信息 Set contexts():存入context,context里可以是任意的自定义数据,一般用于数据过滤 boolean hasContexts():判断是否有下一个,默认为false +``` ```java public class BlogIterator implements InputIterator { diff --git "a/docs/personalwebsite/3.\345\256\232\346\227\266\344\273\273\345\212\241.md" "b/docs/personalwebsite/3.\345\256\232\346\227\266\344\273\273\345\212\241.md" index 44bd1fe2..0c5d0d3b 100644 --- "a/docs/personalwebsite/3.\345\256\232\346\227\266\344\273\273\345\212\241.md" +++ "b/docs/personalwebsite/3.\345\256\232\346\227\266\344\273\273\345\212\241.md" @@ -1,4 +1,4 @@ -## Quartz +# 3.定时任务 先看一下Quartz的架构图: diff --git "a/docs/personalwebsite/4.\346\227\245\345\277\227\347\263\273\347\273\237.md" "b/docs/personalwebsite/4.\346\227\245\345\277\227\347\263\273\347\273\237.md" index 63db44dd..460fe317 100644 --- "a/docs/personalwebsite/4.\346\227\245\345\277\227\347\263\273\347\273\237.md" +++ "b/docs/personalwebsite/4.\346\227\245\345\277\227\347\263\273\347\273\237.md" @@ -1,4 +1,4 @@ -### 谈谈个人网站的建立(四)—— 日志系统的建立 +# 4.日志系统.md 欢迎访问我的网站[http://www.wenzhihuai.com/](http://www.wenzhihuai.com/) 。感谢,如果可以,希望能在GitHub上给个star,GitHub地址[https://github.com/Zephery/newblog](https://github.com/Zephery/newblog) 。 diff --git "a/docs/personalwebsite/5.\345\260\217\351\233\206\347\276\244\351\203\250\347\275\262.md" "b/docs/personalwebsite/5.\345\260\217\351\233\206\347\276\244\351\203\250\347\275\262.md" index 4c97998e..7c26e2cb 100644 --- "a/docs/personalwebsite/5.\345\260\217\351\233\206\347\276\244\351\203\250\347\275\262.md" +++ "b/docs/personalwebsite/5.\345\260\217\351\233\206\347\276\244\351\203\250\347\275\262.md" @@ -1,3 +1,4 @@ +# 5.小集群部署.md 欢迎访问我的个人网站O(∩_∩)O哈哈~希望大佬们能给个star,个人网站网址:[http://www.wenzhihuai.com](http://www.wenzhihuai.com),个人网站代码地址:[https://github.com/Zephery/newblog](https://github.com/Zephery/newblog)。 洋洋洒洒的买了两个服务器,用来学习分布式、集群之类的东西,整来整去,感觉分布式这种东西没人指导一下真的是太抽象了,先从网站的分布式部署一步一步学起来吧,虽然网站本身的访问量不大==。 # nginx负载均衡 diff --git "a/docs/personalwebsite/6.\346\225\260\346\215\256\345\272\223\345\244\207\344\273\275.md" "b/docs/personalwebsite/6.\346\225\260\346\215\256\345\272\223\345\244\207\344\273\275.md" index 84e12e3d..9f96ef0a 100644 --- "a/docs/personalwebsite/6.\346\225\260\346\215\256\345\272\223\345\244\207\344\273\275.md" +++ "b/docs/personalwebsite/6.\346\225\260\346\215\256\345\272\223\345\244\207\344\273\275.md" @@ -1,3 +1,4 @@ +# 6.数据库备份 先来回顾一下上一篇的小集群架构,tomcat集群,nginx进行反向代理,服务器异地: diff --git "a/docs/personalwebsite/7.\351\202\243\344\272\233\347\211\233\351\200\274\347\232\204\346\217\222\344\273\266.md" "b/docs/personalwebsite/7.\351\202\243\344\272\233\347\211\233\351\200\274\347\232\204\346\217\222\344\273\266.md" index c8c3b77f..c12ff1c7 100644 --- "a/docs/personalwebsite/7.\351\202\243\344\272\233\347\211\233\351\200\274\347\232\204\346\217\222\344\273\266.md" +++ "b/docs/personalwebsite/7.\351\202\243\344\272\233\347\211\233\351\200\274\347\232\204\346\217\222\344\273\266.md" @@ -1,3 +1,4 @@ +# 7.那些牛逼的插件 欢迎访问我的网站[http://www.wenzhihuai.com/](http://www.wenzhihuai.com/) 。感谢,如果可以,希望能在GitHub上给个star,GitHub地址[https://github.com/Zephery/newblog](https://github.com/Zephery/newblog) 。 建站的一开始,我也想自己全部实现,各种布局,各种炫丽的效果,想做点能让大家佩服的UI出来,但是,事实上,自己作为专注Java的程序员,前端的东西一碰脑子就有“我又不是前端,浪费时间在这合适么?”这种想法,捣鼓来捣鼓去,做出的东西实在是没法看,我就觉得,如果自己的“产品”连自己都看不下去了,那还好意思给别人看?特别是留言板那块,初版的页面简直low的要死。所以,还是踏踏实实的“站在巨人的肩膀上”吧,改用别人的插件。但不要纯粹的使用别人的博客模板了,如hexo,wordpress这些,就算是自己拼凑过来的也比这些强。下面是本博客中所用到的插件,给大家介绍介绍,共同学习学习。 本站主要用到的插件有: diff --git "a/docs/personalwebsite/8.\345\237\272\344\272\216\350\264\235\345\217\266\346\226\257\347\232\204\346\203\205\346\204\237\345\210\206\346\236\220.md" "b/docs/personalwebsite/8.\345\237\272\344\272\216\350\264\235\345\217\266\346\226\257\347\232\204\346\203\205\346\204\237\345\210\206\346\236\220.md" index 56a6051c..3188e448 100644 --- "a/docs/personalwebsite/8.\345\237\272\344\272\216\350\264\235\345\217\266\346\226\257\347\232\204\346\203\205\346\204\237\345\210\206\346\236\220.md" +++ "b/docs/personalwebsite/8.\345\237\272\344\272\216\350\264\235\345\217\266\346\226\257\347\232\204\346\203\205\346\204\237\345\210\206\346\236\220.md" @@ -1 +1 @@ -1 \ No newline at end of file +# 8.基于贝叶斯的情感分析 \ No newline at end of file diff --git "a/docs/personalwebsite/9.\347\275\221\347\253\231\346\200\247\350\203\275\344\274\230\345\214\226.md" "b/docs/personalwebsite/9.\347\275\221\347\253\231\346\200\247\350\203\275\344\274\230\345\214\226.md" index 56a6051c..c9972c36 100644 --- "a/docs/personalwebsite/9.\347\275\221\347\253\231\346\200\247\350\203\275\344\274\230\345\214\226.md" +++ "b/docs/personalwebsite/9.\347\275\221\347\253\231\346\200\247\350\203\275\344\274\230\345\214\226.md" @@ -1 +1 @@ -1 \ No newline at end of file +# 9.网站性能优化 \ No newline at end of file diff --git a/package.json b/package.json index 414e65d4..636dbaf4 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "@vuepress/plugin-search": "2.0.0-rc.0", "@vuepress/utils": "2.0.0-rc.0", "husky": "8.0.3", + "vuepress-plugin-comment2": "2.0.0-rc.11", "markdownlint-cli2": "0.11.0", "mathjax-full": "3.2.2", "nano-staged": "0.8.0",