forked from glmapper/glmapper.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
90 lines (90 loc) · 58.9 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<!doctype html>
<html lang="zh"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><meta><title>磊叔的技术博客</title><link rel="manifest" href="/manifest.json"><meta name="application-name" content="磊叔的技术博客"><meta name="msapplication-TileImage" content="/img/favicon.ico"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-title" content="磊叔的技术博客"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="description" content="开放,开源,分享,共享"><meta property="og:type" content="blog"><meta property="og:title" content="磊叔的技术博客"><meta property="og:url" content="http://www.glmapper.com/"><meta property="og:site_name" content="磊叔的技术博客"><meta property="og:description" content="开放,开源,分享,共享"><meta property="og:locale" content="zh_CN"><meta property="og:image" content="http://www.glmapper.com/img/og_image.png"><meta property="article:author" content="卫恒"><meta property="twitter:card" content="summary"><meta property="twitter:image" content="/img/og_image.png"><script type="application/ld+json">{"@context":"https://schema.org","@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"http://www.glmapper.com"},"headline":"磊叔的技术博客","image":["http://www.glmapper.com/img/og_image.png"],"author":{"@type":"Person","name":"卫恒"},"publisher":{"@type":"Organization","name":"磊叔的技术博客","logo":{"@type":"ImageObject","url":{"text":"磊叔的技术博客"}}},"description":"开放,开源,分享,共享"}</script><link rel="icon" href="/img/favicon.ico"><link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.2/css/all.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/styles/github.css"><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;600&family=Source+Code+Pro"><link rel="stylesheet" href="/css/default.css"><style>body>.footer,body>.navbar,body>.section{opacity:0}</style><!--!--><!--!--><!--!--><script src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js" defer></script><!--!--><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/build/cookieconsent.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/lightgallery.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/justifiedGallery.min.css"><!--!--><!--!--><style>.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#3273dc;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px}</style><script src="https://cdn.jsdelivr.net/npm/[email protected]/pace.min.js"></script><!--!--><!--!--><!-- hexo injector head_end start --><script>
(function () {
function switchTab() {
if (!location.hash) {
return;
}
Array
.from(document.querySelectorAll('.tab-content'))
.forEach($tab => {
$tab.classList.add('is-hidden');
});
Array
.from(document.querySelectorAll('.tabs li'))
.forEach($tab => {
$tab.classList.remove('is-active');
});
const $activeTab = document.querySelector(location.hash);
if ($activeTab) {
$activeTab.classList.remove('is-hidden');
}
const $tabMenu = document.querySelector(`a[href="${location.hash}"]`);
if ($tabMenu) {
$tabMenu.parentElement.classList.add('is-active');
}
}
switchTab();
window.addEventListener('hashchange', switchTab, false);
})();
</script><!-- hexo injector head_end end --><meta name="generator" content="Hexo 6.1.0"><link rel="alternate" href="/atom.xml" title="磊叔的技术博客" type="application/atom+xml">
</head><body class="is-3-column"><nav class="navbar navbar-main"><div class="container navbar-container"><div class="navbar-brand justify-content-center"><a class="navbar-item navbar-logo" href="/">磊叔的技术博客</a></div><div class="navbar-menu"><div class="navbar-start"><a class="navbar-item is-active" href="/">首页</a><a class="navbar-item" href="/archives">归档</a><a class="navbar-item" href="/categories">分类</a><a class="navbar-item" href="/tags">Tags</a><a class="navbar-item" href="/about">关于</a></div><div class="navbar-end"><a class="navbar-item" target="_blank" rel="noopener" title="Download on GitHub" href="https://github.com/glmapper"><i class="fab fa-github"></i></a><a class="navbar-item search" title="搜索" href="javascript:;"><i class="fas fa-search"></i></a></div></div></div></nav><section class="section"><div class="container"><div class="columns"><div class="column order-2 column-main is-8-tablet is-8-desktop is-6-widescreen"><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item"><time dateTime="2022-12-04T07:49:37.000Z" title="2022/12/4 下午3:49:37">2022-12-04</time>发表</span><span class="level-item"><time dateTime="2022-12-04T07:52:00.244Z" title="2022/12/4 下午3:52:00">2022-12-04</time>更新</span><span class="level-item"><a class="link-muted" href="/categories/%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/">解决方案</a></span><span class="level-item">7 分钟读完 (大约1104个字)</span></div></div><h1 class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2022/12/04/solutions/solution-series-k8s-resources-request-limit/">K8S system OOM 和资源配置实践</a></h1><div class="content"><h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>我们目前服务是托管在 Aws K8S 的,近期出现了一次由于生产环境流量增大而导致的 system OOM 问题,进而导致了部分核心业务受损。在此之前,团队并没有思考过关于 K8S 资源配置上存在的一些问题,也没有按照业务自身情况使用对应的 QoS 类,从而导致了故障的产生。</p>
<p>本文将从这个角度切入,对 K8s 中的资源属性以及 QoS 进行介绍,最后给出生产环境使用的一些建议。</p></div><a class="article-more button is-small is-size-7" href="/2022/12/04/solutions/solution-series-k8s-resources-request-limit/#more">阅读更多</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item"><time dateTime="2022-12-04T07:45:44.000Z" title="2022/12/4 下午3:45:44">2022-12-04</time>发表</span><span class="level-item"><time dateTime="2022-12-04T07:47:18.415Z" title="2022/12/4 下午3:47:18">2022-12-04</time>更新</span><span class="level-item"><a class="link-muted" href="/categories/JAVA/">JAVA</a></span><span class="level-item">16 分钟读完 (大约2327个字)</span></div></div><h1 class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2022/12/04/java/java-open-jdk9-module/">New Features Of JDK - JDK9 Modular System</a></h1><div class="content"><p>Modular System 是 JAVA9 中提供的新特性,它从一个独立的开源项目而来,名为 <a target="_blank" rel="noopener" href="https://openjdk.org/projects/jigsaw/">Jigsaw Project</a>。在此之前,我们对于 Java 技术栈中模块化的认知是基于 OSGI 的,实际上 OSGI 也确实形成了它自己独有的体系,并且是一定程度上的行业标准。</p></div><a class="article-more button is-small is-size-7" href="/2022/12/04/java/java-open-jdk9-module/#more">阅读更多</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item"><time dateTime="2022-11-12T03:23:22.000Z" title="2022/11/12 上午11:23:22">2022-11-12</time>发表</span><span class="level-item"><time dateTime="2022-11-12T03:27:04.772Z" title="2022/11/12 上午11:27:04">2022-11-12</time>更新</span><span class="level-item"><a class="link-muted" href="/categories/%E6%95%B0%E6%8D%AE%E5%BA%93/">数据库</a></span><span class="level-item">21 分钟读完 (大约3110个字)</span></div></div><h1 class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2022/11/12/db/mysql-transaction-mvcc-case/">Mysql - 从一个小 case 理解 MVCC</a></h1><div class="content"><blockquote>
<p>原文链接: <a target="_blank" rel="noopener" href="https://juejin.cn/post/7163934829984088095">https://juejin.cn/post/7163934829984088095</a> </p>
</blockquote>
<h2 id="从-innoDB-的一致性非锁定读说起"><a href="#从-innoDB-的一致性非锁定读说起" class="headerlink" title="从 innoDB 的一致性非锁定读说起"></a>从 innoDB 的一致性非锁定读说起</h2><h3 id="非锁定读和行快照数据"><a href="#非锁定读和行快照数据" class="headerlink" title="非锁定读和行快照数据"></a>非锁定读和行快照数据</h3><p>一致性的非锁定读(consistent nonlocking read)是指 InnoDB 存储引擎通过行多版本控制(multi versioning)的方式来读取当前执行时间数据库中行的数据。如果读取的行正在执行 DELETE 或 UPDATE 操作,这时读取操作不会因此去等待行上锁的释放。相反地,<strong>InnoDB 存储引擎会去读取行的一个快照数据</strong>,下图是关于快照数据的一个简单示图:</p>
<p><img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ddcbc6d689cf4d6fb251f29aedf8df34~tplv-k3u1fbpfcp-zoom-1.image"></p></div><a class="article-more button is-small is-size-7" href="/2022/11/12/db/mysql-transaction-mvcc-case/#more">阅读更多</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item"><time dateTime="2022-09-22T13:31:29.000Z" title="2022/9/22 下午9:31:29">2022-09-22</time>发表</span><span class="level-item"><time dateTime="2022-09-22T13:32:31.298Z" title="2022/9/22 下午9:32:31">2022-09-22</time>更新</span><span class="level-item"><a class="link-muted" href="/categories/RocketMQ/">RocketMQ</a></span><span class="level-item">15 分钟读完 (大约2324个字)</span></div></div><h1 class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2022/09/22/mq/rocketmq/rocketmq-push-consumer-model/">RocketMQ Push 消费模型</a></h1><div class="content"><p>Push 模式是指由 Server 端来控制消息的推送,即当有消息到 Server 之后,会将消息主动投递给 client(Consumer 端)。</p>
<h2 id="使用-DefaultMQPushConsumer-消费消息"><a href="#使用-DefaultMQPushConsumer-消费消息" class="headerlink" title="使用 DefaultMQPushConsumer 消费消息"></a>使用 DefaultMQPushConsumer 消费消息</h2><p>下面是使用 DefaultMQPushConsumer 消费消息的官方示例代码:</p></div><a class="article-more button is-small is-size-7" href="/2022/09/22/mq/rocketmq/rocketmq-push-consumer-model/#more">阅读更多</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item"><time dateTime="2022-09-22T13:29:02.000Z" title="2022/9/22 下午9:29:02">2022-09-22</time>发表</span><span class="level-item"><time dateTime="2022-09-22T13:32:35.514Z" title="2022/9/22 下午9:32:35">2022-09-22</time>更新</span><span class="level-item"><a class="link-muted" href="/categories/RocketMQ/">RocketMQ</a></span><span class="level-item">6 分钟读完 (大约887个字)</span></div></div><h1 class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2022/09/22/mq/rocketmq/rocketmq-deploy-issue/">RocketMQ 本地部署问题总结</a></h1><div class="content"><p>本篇分为 RocketMQ 部署和 RocketMQ-dashboard 部署两部分,主要是 RocketMQ 部署问题较多,汇总了下网上各路大神以及官方 issue 的讨论汇总而来。</p>
<h2 id="RocketMQ-部署"><a href="#RocketMQ-部署" class="headerlink" title="RocketMQ 部署"></a>RocketMQ 部署</h2><p>根据官方的<a target="_blank" rel="noopener" href="https://rocketmq.apache.org/docs/%E4%BB%8B%E7%BB%8D/02quickstart">快速开始</a> 尝试在本地部署 RocketMQ;如果你是按照官方文档直接来搞,可能 90% 是不可能成功的。</p></div><a class="article-more button is-small is-size-7" href="/2022/09/22/mq/rocketmq/rocketmq-deploy-issue/#more">阅读更多</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item"><time dateTime="2022-09-22T13:26:42.000Z" title="2022/9/22 下午9:26:42">2022-09-22</time>发表</span><span class="level-item"><time dateTime="2022-09-22T13:28:39.666Z" title="2022/9/22 下午9:28:39">2022-09-22</time>更新</span><span class="level-item"><a class="link-muted" href="/categories/test/">test</a></span><span class="level-item">18 分钟读完 (大约2726个字)</span></div></div><h1 class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2022/09/22/tests/test-benchmark-ab/">ab 测试</a></h1><div class="content"><h2 id="Apache-Benchmark-Tool"><a href="#Apache-Benchmark-Tool" class="headerlink" title="Apache Benchmark Tool"></a>Apache Benchmark Tool</h2><blockquote>
<p>ab is a tool for benchmarking your Apache Hypertext Transfer Protocol (HTTP) server. It is designed to give you an impression of how your current Apache installation performs. This especially shows you how many requests per second your Apache installation is capable of serving.</p>
</blockquote>
<p>ab 是 apache http server 基准测试工具,它可以帮助我们去了解当前服务的表现,如每秒请求数等。下面是 ab 对应的所有 options 摘要信息:</p></div><a class="article-more button is-small is-size-7" href="/2022/09/22/tests/test-benchmark-ab/#more">阅读更多</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item"><time dateTime="2022-09-12T02:58:30.000Z" title="2022/9/12 上午10:58:30">2022-09-12</time>发表</span><span class="level-item"><time dateTime="2022-09-12T03:00:03.890Z" title="2022/9/12 上午11:00:03">2022-09-12</time>更新</span><span class="level-item"><a class="link-muted" href="/categories/SOFA/">SOFA</a></span><span class="level-item">23 分钟读完 (大约3394个字)</span></div></div><h1 class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2022/09/12/sofa/sofa-registry-sync-data/">浅析 SOFA 注册中心数据同步</a></h1><div class="content"><p>本篇主要对 SOFARegistry 的数据同步模块进行解析,对于注册中心的概念以及 SOFARegistry 的基础架构不做过多阐述,相关介绍可以见<a href="%5Bhttps://www.sofastack.tech/blog/sofa-registry-introduction/%5D(https://www.sofastack.tech/blog/sofa-registry-introduction/)">海量数据下的注册中心 - SOFARegistry 架构介绍</a> 这篇文章。</p></div><a class="article-more button is-small is-size-7" href="/2022/09/12/sofa/sofa-registry-sync-data/#more">阅读更多</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item"><time dateTime="2022-09-12T01:05:44.000Z" title="2022/9/12 上午9:05:44">2022-09-12</time>发表</span><span class="level-item"><time dateTime="2022-11-12T03:28:57.408Z" title="2022/11/12 上午11:28:57">2022-11-12</time>更新</span><span class="level-item"><a class="link-muted" href="/categories/SpringBoot/">SpringBoot</a></span><span class="level-item">14 分钟读完 (大约2131个字)</span></div></div><h1 class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2022/09/12/springboot/spring-boot-async-anno/">你知道 @Async 是怎么让方法异步执行的吗?</a></h1><div class="content"><p>在阅读本文之前,你可以通过 <a target="_blank" rel="noopener" href="https://spring.io/guides/gs/async-method/">Creating Asynchronous Methods</a> 指导来体验下创建异步方法的使用方式。</p>
<p>为什么要写这篇文章,本质上对于这些 Spring 已经封装好的能力,并不需要去关注它底层到底是怎么玩的,比如 <code>@Async</code>,你肯定可以猜到对于打了这个注解的方法(或者类),在执行这个方法(或者类下所有方法)时,Spring 框架会将当前方法丢进到一个单独的线程池中去执行,以达到方法异步执行的目的。</p></div><a class="article-more button is-small is-size-7" href="/2022/09/12/springboot/spring-boot-async-anno/#more">阅读更多</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item"><time dateTime="2022-07-31T03:09:51.000Z" title="2022/7/31 上午11:09:51">2022-07-31</time>发表</span><span class="level-item"><time dateTime="2022-09-12T03:12:02.249Z" title="2022/9/12 上午11:12:02">2022-09-12</time>更新</span><span class="level-item"><a class="link-muted" href="/categories/maven/">maven</a></span><span class="level-item">12 分钟读完 (大约1804个字)</span></div></div><h1 class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2022/07/31/maven/maven-plugin-about-test/">聊 一聊 maven 测试相关的插件</a></h1><div class="content"><p>在之前的 <a target="_blank" rel="noopener" href="https://juejin.cn/post/6919490393893502984">聊一聊 maven 生命周期和 maven 插件编写</a> 这篇文章中,简单聊了点maven 构建生命周期和如何编写一个 maven 插件。本篇文章从插件入手,来探讨下 maven 中那些于测试相关的插件,这些插件与工程师日常开发是密切相关的,可能很多情况下你不需要关注,因为已经有前辈帮你搞完了;“事不关己高高挂起” 与 “知其然知其所以然” 是两种不同的态度,对待技术,我建议是后者!</p></div><a class="article-more button is-small is-size-7" href="/2022/07/31/maven/maven-plugin-about-test/#more">阅读更多</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item"><time dateTime="2022-05-25T14:07:06.000Z" title="2022/5/25 下午10:07:06">2022-05-25</time>发表</span><span class="level-item"><time dateTime="2022-05-25T14:16:17.361Z" title="2022/5/25 下午10:16:17">2022-05-25</time>更新</span><span class="level-item"><a class="link-muted" href="/categories/api/">api</a></span><span class="level-item">1 分钟读完 (大约156个字)</span></div></div><h1 class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2022/05/25/api/api-yapi-change-user-role-by-mongo/">修改 YApi 的用户角色(添加管理员)</a></h1><div class="content"><p>YApi 后端使用的是 MongoDB,先进入命令行管理工具:</p>
<blockquote>
<p>mongo</p>
</blockquote>
<p>然后进入 yapi 数据库:</p></div><a class="article-more button is-small is-size-7" href="/2022/05/25/api/api-yapi-change-user-role-by-mongo/#more">阅读更多</a></article></div><nav class="pagination" role="navigation" aria-label="pagination"><div class="pagination-previous is-invisible is-hidden-mobile"><a href="/page/0/">上一页</a></div><div class="pagination-next"><a href="/page/2/">下一页</a></div><ul class="pagination-list is-hidden-mobile"><li><a class="pagination-link is-current" href="/">1</a></li><li><a class="pagination-link" href="/page/2/">2</a></li><li><span class="pagination-ellipsis">…</span></li><li><a class="pagination-link" href="/page/12/">12</a></li></ul></nav></div><div class="column column-left is-4-tablet is-4-desktop is-3-widescreen order-1 is-sticky"><div class="card widget" data-type="profile"><div class="card-content"><nav class="level"><div class="level-item has-text-centered flex-shrink-1"><div><figure class="image is-128x128 mx-auto mb-2"><img class="avatar is-rounded" src="/img/self.jpg" alt="卫恒"></figure><p class="title is-size-4 is-block" style="line-height:inherit;">卫恒</p><p class="is-size-6 is-block">Java Developer</p><p class="is-size-6 is-flex justify-content-center"><i class="fas fa-map-marker-alt mr-1"></i><span>HeFei AnHui</span></p></div></div></nav><nav class="level is-mobile"><div class="level-item has-text-centered is-marginless"><div><p class="heading">文章</p><a href="/archives"><p class="title">111</p></a></div></div><div class="level-item has-text-centered is-marginless"><div><p class="heading">分类</p><a href="/categories"><p class="title">18</p></a></div></div><div class="level-item has-text-centered is-marginless"><div><p class="heading">标签</p><a href="/tags"><p class="title">131</p></a></div></div></nav><div class="level"><a class="level-item button is-primary is-rounded" href="https://github.com/glmapper" target="_blank" rel="noopener">关注我</a></div><div class="level is-mobile is-multiline"><a class="level-item button is-transparent is-marginless" target="_blank" rel="noopener" title="Github" href="https://github.com/glmapper"><i class="fab fa-github"></i></a><a class="level-item button is-transparent is-marginless" target="_blank" rel="noopener" title="Twitter" href="https://twitter.com"><i class="fab fa-twitter"></i></a><a class="level-item button is-transparent is-marginless" target="_blank" rel="noopener" title="weibo" href="https://weibo.com/u/2412872703"><i class="fab fa-weibo"></i></a><a class="level-item button is-transparent is-marginless" target="_blank" rel="noopener" title="RSS" href="/atom.xml"><i class="fas fa-rss"></i></a></div></div></div><div class="card widget" data-type="links"><div class="card-content"><div class="menu"><h3 class="menu-label">链接</h3><ul class="menu-list"><li><a class="level is-mobile" href="https://juejin.cn/user/3227821827961806" target="_blank" rel="noopener"><span class="level-left"><span class="level-item">掘金社区</span></span><span class="level-right"><span class="level-item tag">juejin.cn</span></span></a></li><li><a class="level is-mobile" href="https://www.sofastack.tech/" target="_blank" rel="noopener"><span class="level-left"><span class="level-item">SOFAStack</span></span><span class="level-right"><span class="level-item tag">www.sofastack.tech</span></span></a></li></ul></div></div></div><!--!--><div class="card widget" data-type="tags"><div class="card-content"><div class="menu"><h3 class="menu-label">标签</h3><div class="field is-grouped is-grouped-multiline"><div class="control"><a class="tags has-addons" href="/tags/BeanDefinition/"><span class="tag">BeanDefinition</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/BeanPostProcessor/"><span class="tag">BeanPostProcessor</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/BeanWrapper/"><span class="tag">BeanWrapper</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/CAS/"><span class="tag">CAS</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/ClassLoader/"><span class="tag">ClassLoader</span><span class="tag">4</span></a></div><div class="control"><a class="tags has-addons" href="/tags/CopyOnWriteArraySet/"><span class="tag">CopyOnWriteArraySet</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Disruptor/"><span class="tag">Disruptor</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Embedded-Tomcat/"><span class="tag">Embedded Tomcat</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Exception/"><span class="tag">Exception</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Executor/"><span class="tag">Executor</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/FX-Application/"><span class="tag">FX Application</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/FatJar/"><span class="tag">FatJar</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Ioc/"><span class="tag">Ioc</span><span class="tag">3</span></a></div><div class="control"><a class="tags has-addons" href="/tags/JAR/"><span class="tag">JAR</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/JDK/"><span class="tag">JDK</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/JUC/"><span class="tag">JUC</span><span class="tag">3</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Kafka/"><span class="tag">Kafka</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/MANIFEST-MF/"><span class="tag">MANIFEST.MF</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Mockito/"><span class="tag">Mockito</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Mysql/"><span class="tag">Mysql</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/OOM/"><span class="tag">OOM</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/OpenTracing/"><span class="tag">OpenTracing</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/PropertySource/"><span class="tag">PropertySource</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Readiness-Check/"><span class="tag">Readiness Check</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/ResourceLoader/"><span class="tag">ResourceLoader</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/RestTemplate/"><span class="tag">RestTemplate</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/RocketMQ/"><span class="tag">RocketMQ</span><span class="tag">3</span></a></div><div class="control"><a class="tags has-addons" href="/tags/SOFA/"><span class="tag">SOFA</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/SOFAArk/"><span class="tag">SOFAArk</span><span class="tag">4</span></a></div><div class="control"><a class="tags has-addons" href="/tags/SOFAStack/"><span class="tag">SOFAStack</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/SpringBoot/"><span class="tag">SpringBoot</span><span class="tag">16</span></a></div><div class="control"><a class="tags has-addons" href="/tags/TestDouble/"><span class="tag">TestDouble</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/ThreadPoolExecutor/"><span class="tag">ThreadPoolExecutor</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Tracer/"><span class="tag">Tracer</span><span class="tag">4</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Zipkin/"><span class="tag">Zipkin</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/ab-test/"><span class="tag">ab test</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/actuator/"><span class="tag">actuator</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/aop/"><span class="tag">aop</span><span class="tag">3</span></a></div><div class="control"><a class="tags has-addons" href="/tags/api/"><span class="tag">api</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/apollo/"><span class="tag">apollo</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/bean-%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6/"><span class="tag">bean 扩展机制</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/bean-%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/"><span class="tag">bean 生命周期</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/bootstrap/"><span class="tag">bootstrap</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/cache/"><span class="tag">cache</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/classloader/"><span class="tag">classloader</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/config/"><span class="tag">config</span><span class="tag">6</span></a></div><div class="control"><a class="tags has-addons" href="/tags/cookie/"><span class="tag">cookie</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/curator/"><span class="tag">curator</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/docker/"><span class="tag">docker</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/eureka/"><span class="tag">eureka</span><span class="tag">5</span></a></div><div class="control"><a class="tags has-addons" href="/tags/event/"><span class="tag">event</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/feign/"><span class="tag">feign</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/gateway/"><span class="tag">gateway</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/gc/"><span class="tag">gc</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/git/"><span class="tag">git</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/github/"><span class="tag">github</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/guava/"><span class="tag">guava</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/http/"><span class="tag">http</span><span class="tag">3</span></a></div><div class="control"><a class="tags has-addons" href="/tags/hystrix/"><span class="tag">hystrix</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/java/"><span class="tag">java</span><span class="tag">5</span></a></div><div class="control"><a class="tags has-addons" href="/tags/junit/"><span class="tag">junit</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/jvm/"><span class="tag">jvm</span><span class="tag">5</span></a></div><div class="control"><a class="tags has-addons" href="/tags/kafka/"><span class="tag">kafka</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/kubernetes/"><span class="tag">kubernetes</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/linux/"><span class="tag">linux</span><span class="tag">6</span></a></div><div class="control"><a class="tags has-addons" href="/tags/lock/"><span class="tag">lock</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/log/"><span class="tag">log</span><span class="tag">5</span></a></div><div class="control"><a class="tags has-addons" href="/tags/logback/"><span class="tag">logback</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/maven/"><span class="tag">maven</span><span class="tag">4</span></a></div><div class="control"><a class="tags has-addons" href="/tags/maven-debug/"><span class="tag">maven debug</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/maven-plugin/"><span class="tag">maven plugin</span><span class="tag">3</span></a></div><div class="control"><a class="tags has-addons" href="/tags/merge/"><span class="tag">merge</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/microservices/"><span class="tag">microservices</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/mock/"><span class="tag">mock</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/mvcc/"><span class="tag">mvcc</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/mybatis/"><span class="tag">mybatis</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/mysql/"><span class="tag">mysql</span><span class="tag">4</span></a></div><div class="control"><a class="tags has-addons" href="/tags/nacos/"><span class="tag">nacos</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/namespace/"><span class="tag">namespace</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/netflix/"><span class="tag">netflix</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/nginx/"><span class="tag">nginx</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/oop-klass/"><span class="tag">oop-klass</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/openjdk/"><span class="tag">openjdk</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/reactor/"><span class="tag">reactor</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/rebase/"><span class="tag">rebase</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/redis/"><span class="tag">redis</span><span class="tag">5</span></a></div><div class="control"><a class="tags has-addons" href="/tags/rpc/"><span class="tag">rpc</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/session/"><span class="tag">session</span><span class="tag">6</span></a></div><div class="control"><a class="tags has-addons" href="/tags/set/"><span class="tag">set</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/shell/"><span class="tag">shell</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/slf4j/"><span class="tag">slf4j</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/spring/"><span class="tag">spring</span><span class="tag">11</span></a></div><div class="control"><a class="tags has-addons" href="/tags/spring-cloud/"><span class="tag">spring cloud</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/spring-mvc/"><span class="tag">spring mvc</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/spring-%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6/"><span class="tag">spring 扩展机制</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/sql/"><span class="tag">sql</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/ssh/"><span class="tag">ssh</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/starter-%E6%9C%BA%E5%88%B6/"><span class="tag">starter 机制</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/test/"><span class="tag">test</span><span class="tag">4</span></a></div><div class="control"><a class="tags has-addons" href="/tags/testing/"><span class="tag">testing</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/thread/"><span class="tag">thread</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/tomcat/"><span class="tag">tomcat</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/top/"><span class="tag">top</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/typecheck/"><span class="tag">typecheck</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/yapi/"><span class="tag">yapi</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/yum/"><span class="tag">yum</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/zookeeper/"><span class="tag">zookeeper</span><span class="tag">3</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E4%B8%AD%E5%8F%B0/"><span class="tag">中台</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E4%BA%8B%E4%BB%B6%E6%9C%BA%E5%88%B6/"><span class="tag">事件机制</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5/"><span class="tag">依赖注入</span><span class="tag">3</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%88%86%E5%B8%83%E5%BC%8F/"><span class="tag">分布式</span><span class="tag">6</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%88%86%E5%B8%83%E5%BC%8F%E9%93%BE%E8%B7%AF%E8%B7%9F%E8%B8%AA/"><span class="tag">分布式链路跟踪</span><span class="tag">4</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86/"><span class="tag">反向代理</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%8F%8D%E5%B0%84/"><span class="tag">反射</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%90%88%E8%82%A5/"><span class="tag">合肥</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/"><span class="tag">并发编程</span><span class="tag">5</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%BE%AE%E6%9C%8D%E5%8A%A1/"><span class="tag">微服务</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%9D%AD%E5%B7%9E/"><span class="tag">杭州</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%9E%B6%E6%9E%84/"><span class="tag">架构</span><span class="tag">4</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%A1%86%E6%9E%B6/"><span class="tag">框架</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%B3%9B%E5%9E%8B/"><span class="tag">泛型</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%B3%A8%E5%86%8C%E4%B8%AD%E5%BF%83/"><span class="tag">注册中心</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%B6%88%E6%81%AF/"><span class="tag">消息</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E7%B1%BB%E5%8A%A0%E8%BD%BD/"><span class="tag">类加载</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E7%BA%BF%E7%A8%8B%E6%B1%A0/"><span class="tag">线程池</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E8%87%AA%E5%8A%A8%E9%85%8D%E7%BD%AE/"><span class="tag">自动配置</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/"><span class="tag">负载均衡</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E8%BF%90%E7%BB%B4/"><span class="tag">运维</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E8%BF%AD%E4%BB%A3%E5%99%A8/"><span class="tag">迭代器</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E9%85%8D%E7%BD%AE/"><span class="tag">配置</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E9%9B%86%E7%BE%A4%E9%80%89%E4%B8%BB/"><span class="tag">集群选主</span><span class="tag">1</span></a></div></div></div></div></div><div class="column-right-shadow is-hidden-widescreen is-sticky"></div></div><div class="column column-right is-4-tablet is-4-desktop is-3-widescreen is-hidden-touch is-hidden-desktop-only order-3 is-sticky"><div class="card widget" data-type="categories"><div class="card-content"><div class="menu"><h3 class="menu-label">分类</h3><ul class="menu-list"><li><a class="level is-mobile" href="/categories/JAVA/"><span class="level-start"><span class="level-item">JAVA</span></span><span class="level-end"><span class="level-item tag">12</span></span></a></li><li><a class="level is-mobile" href="/categories/Linux/"><span class="level-start"><span class="level-item">Linux</span></span><span class="level-end"><span class="level-item tag">6</span></span></a></li><li><a class="level is-mobile" href="/categories/Middleware/"><span class="level-start"><span class="level-item">Middleware</span></span><span class="level-end"><span class="level-item tag">10</span></span></a></li><li><a class="level is-mobile" href="/categories/Nacos/"><span class="level-start"><span class="level-item">Nacos</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/categories/RocketMQ/"><span class="level-start"><span class="level-item">RocketMQ</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/categories/SOFA/"><span class="level-start"><span class="level-item">SOFA</span></span><span class="level-end"><span class="level-item tag">9</span></span></a></li><li><a class="level is-mobile" href="/categories/SpringBoot/"><span class="level-start"><span class="level-item">SpringBoot</span></span><span class="level-end"><span class="level-item tag">16</span></span></a></li><li><a class="level is-mobile" href="/categories/SpringCloud/"><span class="level-start"><span class="level-item">SpringCloud</span></span><span class="level-end"><span class="level-item tag">14</span></span></a></li><li><a class="level is-mobile" href="/categories/api/"><span class="level-start"><span class="level-item">api</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/categories/docker/"><span class="level-start"><span class="level-item">docker</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/categories/experience/"><span class="level-start"><span class="level-item">experience</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/categories/git/"><span class="level-start"><span class="level-item">git</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/categories/jvm/"><span class="level-start"><span class="level-item">jvm</span></span><span class="level-end"><span class="level-item tag">5</span></span></a></li><li><a class="level is-mobile" href="/categories/maven/"><span class="level-start"><span class="level-item">maven</span></span><span class="level-end"><span class="level-item tag">4</span></span></a></li><li><a class="level is-mobile" href="/categories/spring/"><span class="level-start"><span class="level-item">spring</span></span><span class="level-end"><span class="level-item tag">15</span></span></a></li><li><a class="level is-mobile" href="/categories/test/"><span class="level-start"><span class="level-item">test</span></span><span class="level-end"><span class="level-item tag">4</span></span></a></li><li><a class="level is-mobile" href="/categories/%E6%95%B0%E6%8D%AE%E5%BA%93/"><span class="level-start"><span class="level-item">数据库</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/categories/%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/"><span class="level-start"><span class="level-item">解决方案</span></span><span class="level-end"><span class="level-item tag">5</span></span></a></li></ul></div></div></div><div class="card widget" data-type="recent-posts"><div class="card-content"><h3 class="menu-label">最新文章</h3><article class="media"><div class="media-content"><p class="date"><time dateTime="2022-12-04T07:49:37.000Z">2022-12-04</time></p><p class="title"><a href="/2022/12/04/solutions/solution-series-k8s-resources-request-limit/">K8S system OOM 和资源配置实践</a></p><p class="categories"><a href="/categories/%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/">解决方案</a></p></div></article><article class="media"><div class="media-content"><p class="date"><time dateTime="2022-12-04T07:45:44.000Z">2022-12-04</time></p><p class="title"><a href="/2022/12/04/java/java-open-jdk9-module/">New Features Of JDK - JDK9 Modular System</a></p><p class="categories"><a href="/categories/JAVA/">JAVA</a></p></div></article><article class="media"><div class="media-content"><p class="date"><time dateTime="2022-11-12T03:23:22.000Z">2022-11-12</time></p><p class="title"><a href="/2022/11/12/db/mysql-transaction-mvcc-case/">Mysql - 从一个小 case 理解 MVCC</a></p><p class="categories"><a href="/categories/%E6%95%B0%E6%8D%AE%E5%BA%93/">数据库</a></p></div></article><article class="media"><div class="media-content"><p class="date"><time dateTime="2022-09-22T13:31:29.000Z">2022-09-22</time></p><p class="title"><a href="/2022/09/22/mq/rocketmq/rocketmq-push-consumer-model/">RocketMQ Push 消费模型</a></p><p class="categories"><a href="/categories/RocketMQ/">RocketMQ</a></p></div></article><article class="media"><div class="media-content"><p class="date"><time dateTime="2022-09-22T13:29:02.000Z">2022-09-22</time></p><p class="title"><a href="/2022/09/22/mq/rocketmq/rocketmq-deploy-issue/">RocketMQ 本地部署问题总结</a></p><p class="categories"><a href="/categories/RocketMQ/">RocketMQ</a></p></div></article></div></div><div class="card widget" data-type="archives"><div class="card-content"><div class="menu"><h3 class="menu-label">Archive</h3><ul class="menu-list"><li><a class="level is-mobile" href="/archives/2022/12/"><span class="level-start"><span class="level-item">十二月 2022</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/archives/2022/11/"><span class="level-start"><span class="level-item">十一月 2022</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2022/09/"><span class="level-start"><span class="level-item">九月 2022</span></span><span class="level-end"><span class="level-item tag">5</span></span></a></li><li><a class="level is-mobile" href="/archives/2022/07/"><span class="level-start"><span class="level-item">七月 2022</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2022/05/"><span class="level-start"><span class="level-item">五月 2022</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2022/04/"><span class="level-start"><span class="level-item">四月 2022</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2022/03/"><span class="level-start"><span class="level-item">三月 2022</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2022/02/"><span class="level-start"><span class="level-item">二月 2022</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2021/12/"><span class="level-start"><span class="level-item">十二月 2021</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2021/11/"><span class="level-start"><span class="level-item">十一月 2021</span></span><span class="level-end"><span class="level-item tag">8</span></span></a></li><li><a class="level is-mobile" href="/archives/2021/07/"><span class="level-start"><span class="level-item">七月 2021</span></span><span class="level-end"><span class="level-item tag">4</span></span></a></li><li><a class="level is-mobile" href="/archives/2021/06/"><span class="level-start"><span class="level-item">六月 2021</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2021/01/"><span class="level-start"><span class="level-item">一月 2021</span></span><span class="level-end"><span class="level-item tag">3</span></span></a></li><li><a class="level is-mobile" href="/archives/2020/12/"><span class="level-start"><span class="level-item">十二月 2020</span></span><span class="level-end"><span class="level-item tag">4</span></span></a></li><li><a class="level is-mobile" href="/archives/2020/10/"><span class="level-start"><span class="level-item">十月 2020</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/archives/2020/08/"><span class="level-start"><span class="level-item">八月 2020</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2020/06/"><span class="level-start"><span class="level-item">六月 2020</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2020/05/"><span class="level-start"><span class="level-item">五月 2020</span></span><span class="level-end"><span class="level-item tag">3</span></span></a></li><li><a class="level is-mobile" href="/archives/2020/04/"><span class="level-start"><span class="level-item">四月 2020</span></span><span class="level-end"><span class="level-item tag">3</span></span></a></li><li><a class="level is-mobile" href="/archives/2020/03/"><span class="level-start"><span class="level-item">三月 2020</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2020/02/"><span class="level-start"><span class="level-item">二月 2020</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2020/01/"><span class="level-start"><span class="level-item">一月 2020</span></span><span class="level-end"><span class="level-item tag">3</span></span></a></li><li><a class="level is-mobile" href="/archives/2019/12/"><span class="level-start"><span class="level-item">十二月 2019</span></span><span class="level-end"><span class="level-item tag">6</span></span></a></li><li><a class="level is-mobile" href="/archives/2019/10/"><span class="level-start"><span class="level-item">十月 2019</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/archives/2019/08/"><span class="level-start"><span class="level-item">八月 2019</span></span><span class="level-end"><span class="level-item tag">3</span></span></a></li><li><a class="level is-mobile" href="/archives/2019/07/"><span class="level-start"><span class="level-item">七月 2019</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2019/06/"><span class="level-start"><span class="level-item">六月 2019</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/archives/2019/05/"><span class="level-start"><span class="level-item">五月 2019</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2019/04/"><span class="level-start"><span class="level-item">四月 2019</span></span><span class="level-end"><span class="level-item tag">4</span></span></a></li><li><a class="level is-mobile" href="/archives/2019/03/"><span class="level-start"><span class="level-item">三月 2019</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2018/12/"><span class="level-start"><span class="level-item">十二月 2018</span></span><span class="level-end"><span class="level-item tag">19</span></span></a></li><li><a class="level is-mobile" href="/archives/2018/11/"><span class="level-start"><span class="level-item">十一月 2018</span></span><span class="level-end"><span class="level-item tag">10</span></span></a></li><li><a class="level is-mobile" href="/archives/2018/10/"><span class="level-start"><span class="level-item">十月 2018</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2018/08/"><span class="level-start"><span class="level-item">八月 2018</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/archives/2018/06/"><span class="level-start"><span class="level-item">六月 2018</span></span><span class="level-end"><span class="level-item tag">3</span></span></a></li><li><a class="level is-mobile" href="/archives/2018/05/"><span class="level-start"><span class="level-item">五月 2018</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2018/04/"><span class="level-start"><span class="level-item">四月 2018</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/archives/2018/02/"><span class="level-start"><span class="level-item">二月 2018</span></span><span class="level-end"><span class="level-item tag">3</span></span></a></li><li><a class="level is-mobile" href="/archives/2017/11/"><span class="level-start"><span class="level-item">十一月 2017</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li></ul></div></div></div></div></div></div></section><footer class="footer"><div class="container"><div class="level"><div class="level-start"><a class="footer-logo is-block mb-2" href="/">磊叔的技术博客</a><p class="is-size-7"><span>© 2022 卫恒</span> Powered by <a href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a> & <a href="https://github.com/ppoffice/hexo-theme-icarus" target="_blank" rel="noopener">Icarus</a><br><span id="busuanzi_container_site_uv">共<span id="busuanzi_value_site_uv">0</span>个访客</span></p></div><div class="level-end"><div class="field has-addons"><p class="control"><a class="button is-transparent is-large" target="_blank" rel="noopener" title="Download on GitHub" href="https://github.com/glmapper"><i class="fab fa-github"></i></a></p></div></div></div></div></footer><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js"></script><script src="https://cdn.jsdelivr.net/npm/[email protected]/min/moment-with-locales.min.js"></script><script>moment.locale("zh-CN");</script><script>var IcarusThemeSettings = {
article: {
highlight: {
clipboard: false,
fold: ''
}
}
};</script><script src="/js/column.js"></script><script src="/js/animation.js"></script><a id="back-to-top" title="回到顶端" href="javascript:;"><i class="fas fa-chevron-up"></i></a><script src="/js/back_to_top.js" defer></script><!--!--><!--!--><!--!--><!--!--><script src="https://cdn.jsdelivr.net/npm/[email protected]/build/cookieconsent.min.js" defer></script><script>window.addEventListener("load", () => {
window.cookieconsent.initialise({
type: "info",
theme: "edgeless",
static: false,
position: "bottom-left",
content: {
message: "此网站使用Cookie来改善您的体验。",
dismiss: "知道了!",
allow: "允许使用Cookie",
deny: "拒绝",
link: "了解更多",
policy: "Cookie政策",
href: "https://www.cookiesandyou.com/",
},
palette: {
popup: {
background: "#edeff5",
text: "#838391"
},
button: {
background: "#4b81e8"
},
},
});
});</script><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/lightgallery.min.js" defer></script><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/jquery.justifiedGallery.min.js" defer></script><script>window.addEventListener("load", () => {
if (typeof $.fn.lightGallery === 'function') {
$('.article').lightGallery({ selector: '.gallery-item' });
}
if (typeof $.fn.justifiedGallery === 'function') {
if ($('.justified-gallery > p > .gallery-item').length) {
$('.justified-gallery > p > .gallery-item').unwrap();
}
$('.justified-gallery').justifiedGallery();
}
});</script><!--!--><!--!--><!--!--><!--!--><!--!--><script src="/js/main.js" defer></script><div class="searchbox"><div class="searchbox-container"><div class="searchbox-header"><div class="searchbox-input-container"><input class="searchbox-input" type="text" placeholder="想要查找什么..."></div><a class="searchbox-close" href="javascript:;">×</a></div><div class="searchbox-body"></div></div></div><script src="/js/insight.js" defer></script><script>document.addEventListener('DOMContentLoaded', function () {
loadInsight({"contentUrl":"/content.json"}, {"hint":"想要查找什么...","untitled":"(无标题)","posts":"文章","pages":"页面","categories":"分类","tags":"标签"});
});</script></body></html>