在写完《Java 网络编程原理 - 应用程序是如何建立 TCP 连接并响应网络请求的?》 一文以后,也是了解了 Tomcat 的底层原理,同时掌握了网络通信的原理和各种序列化方式,我就想着如何自己实现一个 Tomcat web 容器呢?
核心功能是来接收浏览器的请求,同时根据请求过来的信息,进行路由到接口上进行数据处理,根据最后处理的数据结果进行响应。

在上篇《Java 网络编程原理 - 从输入域名到后端交互的全流程解析》文章中,我们探索了 “浏览器输入 www.taobao.com 回车之后发生了什么?” 从浏览器访问域名后出发,深入网络层面的数据传输,访问到 Web 服务器后进行响应。
接下来我们思考一下 “应用程序是如何建立 TCP 连接响应网络请求的?”,本文将带你从网络IO分析,了解不同的IO模型的实现,深入网络编程原理的实现。
在海底捞二面的时候,面试官问了我一个大文件流传输的问题,用的 IO 会有哪些,我回答了 BIO、NIO 的内容,后来复盘了一下,觉得对网络编程方面的知识内容没有掌握彻底,还得再接再厉啊。
从一个最常见的场景入手,来看下你掌握网络编程的深度: “浏览器输入 www.taobao.com 回车之后发生了什么?”,你是否能回答上来这个问题呢?今天我将由浅入深的探索网络编程的原理,从 0-1 的告诉你网络交互的全流程,同时将涉及的基础内容都整理出来,做复习之用。

今日面试时,面试官问到了 “三色标记法”,我得回答是根据垃圾回收的 可达性分析算法,在垃圾回收时进行的并发标记的处理,然后讲了实现思路,与G1垃圾回收器中采用 增量更新 解决的并发标记问题,说到其本质就是垃圾回收与应用运行时的一种并发处理,与 MVCC 并发事务类似,都是针对于并发下的处理。
其实我在这是进行的 埋点,希望面试官来问我 MVCC 机制,我接下打算结合日志体系如何保障事务 ACID 来吊打他,结果面试官转弯来问到 那并发事务中,为什么不采用增量更新的形式解决呢?

在面试中回答过多次分库分表的问题以后,经过几次复盘,我对分库分表的内容已然掌握的炉火纯青,接下来我将根据实际的业务场景,系统性地总结分库分表的回答思路与个人思考的解决方案。