Nicksxs's Blog
https://nicksxs.me/icon.png
What hurts more, the pain of hard work or the pain of regret?
2023-12-31T13:52:02.249Z
https://nicksxs.me/
Nicksxs
Hexo
php 的调试方法-查看调用堆栈
https://nicksxs.me/2023/12/31/php-%E7%9A%84%E8%B0%83%E8%AF%95%E6%96%B9%E6%B3%95-%E6%9F%A5%E7%9C%8B%E8%B0%83%E7%94%A8%E5%A0%86%E6%A0%88/
2023-12-31T13:49:36.000Z
2023-12-31T13:52:02.249Z
<p>php 代码调试里的神器就是 <code>echo 111;exit;</code> 但是对于使用了接口和继承比较多的话,有时候比较难找,可能定位到了一段代码但是不知道怎么调用过来的,这时候就可以用这个方法</p>
<p>总结下来有三种,</p>
<h2
阿里云 rds 主从延迟排查
https://nicksxs.me/2023/12/24/%E9%98%BF%E9%87%8C%E4%BA%91-rds-%E4%B8%BB%E4%BB%8E%E5%BB%B6%E8%BF%9F%E6%8E%92%E6%9F%A5/
2023-12-24T12:48:08.000Z
2023-12-24T12:48:08.804Z
<p>昨天同学问我是不是数据库主从延迟有点高,可能有一分多钟,然后我就去看了rds 的监控,发现主实例上的监控显示的延迟才 1.2 秒,而且是最高 1.2 秒,感觉这样的话应该就没啥问题,然后同学跟我说他加了日志,大致的逻辑是主库数据落库以后就会发一条 mq
Tomcat 系列篇十二-番外介绍下 Tomcat 的上传文件限制
https://nicksxs.me/2023/12/17/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E5%8D%81%E4%BA%8C-%E7%95%AA%E5%A4%96%E4%BB%8B%E7%BB%8D%E4%B8%8B-Tomcat-%E7%9A%84%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%E9%99%90%E5%88%B6/
2023-12-17T11:17:52.000Z
2023-12-17T11:17:52.934Z
<p>最近同学在把 springboot 升级到 2.x
Tomcat 系列篇十一-介绍下 Tomcat 里的后台处理和热加载
https://nicksxs.me/2023/12/10/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E5%8D%81%E4%B8%80-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Tomcat-%E9%87%8C%E7%9A%84%E5%90%8E%E5%8F%B0%E5%A4%84%E7%90%86%E5%92%8C%E7%83%AD%E5%8A%A0%E8%BD%BD/
2023-12-10T12:28:28.000Z
2023-12-10T12:28:28.303Z
<p>这部分其实之前在讲线程池的时候也有点带到了, 主要是在这个类里<br><code>org.apache.catalina.core.ContainerBase.ContainerBackgroundProcessor</code></p>
<pre
Windows 莫名重启问题解决
https://nicksxs.me/2023/12/03/Windows-%E8%8E%AB%E5%90%8D%E9%87%8D%E5%90%AF%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3/
2023-12-03T11:54:34.000Z
2023-12-03T11:54:34.680Z
<p>之前在 Windows 里用 vmware workstation 搭了个黑裙,然后硬盘直通,硬盘跑着倒还好,但是宿主机 Windows 隔一段时间就会重启,就去搜索了下,发现其实 Windows 里的事件查看器就有点像是 Linux 系统里的 dmesg 或者
Tomcat 系列篇十-介绍下 Tomcat 里的 Mapper 作用
https://nicksxs.me/2023/11/26/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E5%8D%81-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Tomcat-%E9%87%8C%E7%9A%84-Mapper-%E4%BD%9C%E7%94%A8/
2023-11-26T11:02:21.000Z
2023-11-26T11:02:21.316Z
<p>Mapper 顾名思义是作一个映射作用,在 Tomcat 中会根据域名找到 host 组件,再根据 uri 可以找到对应的 context 和 wrapper 组件,但是对于当前这个环境 (Springboot) 会有一点小区别<br>之前说到<br>请求会经过
Tomcat 系列篇九-介绍下 Tomcat 里的 ContainerBase
https://nicksxs.me/2023/11/19/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E4%B9%9D-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Tomcat-%E9%87%8C%E7%9A%84-ContainerBase/
2023-11-19T13:15:56.000Z
2023-11-19T13:16:29.095Z
<p>前面介绍过 Tomcat 的层次结构,</p>
<pre class="line-numbers language-markup" data-language="markup"><code class="language-markup"><span
记录下一次服务器迁移
https://nicksxs.me/2023/11/12/%E8%AE%B0%E5%BD%95%E4%B8%8B%E4%B8%80%E6%AC%A1%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%81%E7%A7%BB/
2023-11-12T12:19:00.000Z
2023-11-12T12:19:58.559Z
<p>因为服务器续费即使是这次双十一还是太贵了,之前在 tx 买的三年 2c4g 3m 的一台服务器,原来价格是三年 800+,现在续费三年要
Tomcat 系列篇八-介绍下 Tomcat 里的线程池用处
https://nicksxs.me/2023/11/05/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E5%85%AB-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Tomcat-%E9%87%8C%E7%9A%84%E7%BA%BF%E7%A8%8B%E6%B1%A0%E7%94%A8%E5%A4%84/
2023-11-05T11:38:56.000Z
2023-11-05T11:38:56.345Z
<p>线程池在 Tomcat 中也是非常重要的工具,这里我们简单介绍下 Tomcat 中的线程池,在 container 的启动过程中<br>org.apache.catalina.core.ContainerBase#initInternal</p>
<pre
Tomcat 系列篇七-介绍下 Filter 注册逻辑
https://nicksxs.me/2023/10/29/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E4%B8%83-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Filter-%E6%B3%A8%E5%86%8C%E9%80%BB%E8%BE%91/
2023-10-29T11:27:03.000Z
2023-10-29T11:27:03.414Z
<p>在<br>org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext#createWebServer 的时候会调用</p>
<pre class="line-numbers
Tomcat 系列篇六-介绍下 Lifecycle
https://nicksxs.me/2023/10/21/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E5%85%AD-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Lifecycle/
2023-10-21T12:30:32.000Z
2023-11-05T11:09:18.860Z
<p>Tomcat 中的很多组件都是继承了LifecycleBase这个抽象类的,包括之前讲过的 connector,server,service,context,host 这些组件都是,我们先来看下接口<br>主体是分为两部分,第一部分是定义状态时间,如
聊聊对 FunctionalInterface 注解的一些理解
https://nicksxs.me/2023/10/15/%E8%81%8A%E8%81%8A%E5%AF%B9-FunctionalInterface-%E6%B3%A8%E8%A7%A3%E7%9A%84%E4%B8%80%E4%BA%9B%E7%90%86%E8%A7%A3/
2023-10-15T12:13:42.000Z
2023-10-15T12:14:55.934Z
<p>在看 Tomcat 代码过程中碰到了一个小问题,可以用代码来举例讲一下<br>先定义一个简单的接口</p>
<pre class="line-numbers language-java" data-language="java"><code
Tomcat 系列篇五-介绍下 Service 启动过程
https://nicksxs.me/2023/10/07/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E5%9B%9B-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Service-%E5%90%AF%E5%8A%A8%E8%BF%87%E7%A8%8B/
2023-10-07T08:03:56.000Z
2023-10-07T08:04:46.198Z
<p>这里开始介绍下 Service 的启动过程,Tomcat 的启动过程中</p>
<pre class="line-numbers language-java" data-language="java"><code class="language-java"><span
Tomcat 系列篇四-介绍下 Valve 架构
https://nicksxs.me/2023/10/01/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E5%9B%9B-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Valve-%E6%9E%B6%E6%9E%84/
2023-10-01T11:54:06.000Z
2023-10-01T11:54:37.988Z
<p>valve 是 Tomcat 架构中比较重要的一个组成部分,<br>之前说到 </p>
<pre class="line-numbers language-java" data-language="java"><code
Tomcat 系列篇三-介绍下 Coyote
https://nicksxs.me/2023/09/24/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E4%B8%89-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Coyote/
2023-09-24T13:36:43.000Z
2023-09-24T13:36:43.402Z
<p>前面介绍了 connector,这里边还有个很重要的概念是 Coyote,真正将前面的 connector 跟后面的 container
Tomcat 系列篇二-介绍下整体架构
https://nicksxs.me/2023/09/16/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E4%BA%8C-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Engine/
2023-09-16T07:20:57.000Z
2023-09-16T07:24:08.607Z
<p>前面那一篇感觉上来的有点突兀,还是应该按照架构去慢慢解析,所以这里回归下我们整体的 Tomcat 架构,这里我们通过一个 Tomcat 的配置文件来看看</p>
<pre class="line-numbers language-markup"
Tomcat 系列篇一-介绍下 connector
https://nicksxs.me/2023/09/10/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E4%B8%80-%E4%BB%8B%E7%BB%8D%E4%B8%8B-connector/
2023-09-10T13:30:22.000Z
2023-09-11T00:23:37.251Z
<p>tomcat的主体架构里,connector 作为核心的连接器<br><img
springboot 处理请求的小分支-跳转 & cookie
https://nicksxs.me/2023/09/03/springboot-%E5%A4%84%E7%90%86%E8%AF%B7%E6%B1%82%E7%9A%84%E5%B0%8F%E5%88%86%E6%94%AF-%E8%B7%B3%E8%BD%AC-cookie/
2023-09-03T13:29:12.000Z
2023-09-03T13:29:12.447Z
<p>首先是跳转,应该说设置状态,其中跳转是其中一个状态,</p>
<pre class="line-numbers language-java" data-language="java"><code class="language-java"><span
springboot 请求响应处理流程
https://nicksxs.me/2023/08/27/springboot-%E8%AF%B7%E6%B1%82%E5%93%8D%E5%BA%94%E5%A4%84%E7%90%86%E6%B5%81%E7%A8%8B/
2023-08-27T14:47:19.000Z
2023-09-05T09:19:33.385Z
<p>Tomcat 会把请求委托到<br><code>org.springframework.web.servlet.DispatcherServlet#doService</code> </p>
<pre class="line-numbers language-java"
springboot web server 启动逻辑
https://nicksxs.me/2023/08/20/springboot-web-server-%E5%90%AF%E5%8A%A8%E9%80%BB%E8%BE%91/
2023-08-20T09:38:56.000Z
2023-09-05T09:27:00.552Z
<p>springboot 的一个方便之处就是集成了 web server 进去,接着上一篇继续来看下这个 web server 的启动过程<br>这边是基于 springboot 的 2.2.9.RELEASE 版本,整个 springboot