Ekko Blog

路漫漫其修远兮 ,吾将上下而求索

IO总结

同步/异步、阻塞/非阻塞、BIO/NIO/AIO 与多路复用

这篇笔记的目标是把 I/O 中最容易混淆的几组概念放到同一张图景里:同步和异步、阻塞和非阻塞、BIO/NIO/AIO,以及多路复用。内容重点放在网络 I/O 和 Java 常见实现上,目的是先把概念边界理顺,再去理解框架和源码中的具体写法。 很多资料会把这些词混着用,或者直接把 NIO 等价成“同步非阻塞”、把 AIO 等价成“内核一定真异步”。这种说法在入门阶段有助于建立直...

Redis缓存中间件-Ⅱ

Redis 数据结构、高级类型与分布式锁

这一篇从 Redis 的数据结构视角继续往下展开,重点梳理 String、Hash、List、Set、ZSet 的底层编码思路,以及 HyperLogLog、Bloom Filter、分布式锁这些在工程里高频出现但又容易混淆的主题。 内容更偏向“概念与机制对应起来”的笔记:既关注命令层面的使用方式,也关注底层编码、适用边界和常见误区,便于后续把缓存、去重、统计和并发控制这些问...

Redis缓存中间件-Ⅰ

缓存基础、Redis 核心机制与高可用方案梳理

内容从缓存的基本思想出发,梳理 Redis 在读写模式、过期与淘汰、持久化、主从复制、哨兵和集群等方面的核心机制。整体定位偏向基础总览,重点是把常见概念之间的关系串起来。 内容重点放在缓存视角下最常见的基础问题,便于先建立对 Redis 核心机制的整体认识。 参考资料: 官方文档:Redis Documentation 、 Redis Commands 、...

ZooKeeper 原理与典型应用

数据模型、Watcher、分布式锁、选主机制与 ZAB 一致性

这篇笔记围绕 ZooKeeper 在分布式系统中的定位展开,重点梳理它的数据模型、Watcher 机制、分布式锁实现思路、注册中心语义、Leader 选举以及 ZAB 一致性协议。 文章以“为什么 ZooKeeper 适合做协调而不适合做大规模业务存储”为主线,同时补上几个容易混淆的边界,例如 getChildren() 返回的是什么、Watcher 为什么必须重新注册、Zo...

HTTP内容汇总

HTTP/HTTPS、报文结构、网络分层与 TCP 机制梳理

这篇笔记按“HTTP/HTTPS 基础概念 -> 报文结构 -> 网络分层 -> TCP 关键机制”的顺序整理常见知识点,重点不是只记结论,而是把这些概念之间的连接关系理清楚。 内容覆盖 HTTP 与 HTTPS 的区别、TLS 加解密所在阶段、请求与响应报文、Cookie 与 Session、TCP 三次握手/四次挥手,以及一次完整请求在网络分层中的流转过...

RPC框架

从调用模型、协议分层到 Dubbo 调用链

这篇笔记的目标是把 RPC 从“像本地调用一样调远程服务”这句抽象描述拆开,分别说明代理、服务发现、序列化、协议编码、网络传输、请求关联和服务治理在一次调用里各自承担什么职责。 RPC 的核心不在于替代 HTTP,而在于把“远程调用的工程复杂度”封装到统一框架中。只保留“代理 + 找到地址 + 封装请求”的理解还不够,还需要把注册发现、超时重试、负载均衡、连接复用和兼容性边界...

Dubbo入门

从分层架构、服务暴露到调用链路

这篇笔记围绕经典 Dubbo 2.x 架构展开,主线是服务暴露、服务引用、注册发现、集群容错和远程调用。阅读重点不在配置清单,而在于把一次 RPC 调用在框架内部是如何被拆成 Proxy、Invoker、Protocol、Registry、Cluster、Transport 这些层次说明白。 文中引用的源码片段使用的是 com.alibaba.dubbo 包名,因此对应的是阿...

Java线程池实现原理

ThreadPoolExecutor 的任务调度、Worker 管理与生命周期

这篇笔记围绕 ThreadPoolExecutor 展开,重点梳理线程池为什么要同时管理线程与任务、execute() 的调度决策如何展开,以及 Worker、阻塞队列、拒绝策略和生命周期状态如何共同维持线程池的运行。 正文基于 JDK 8 源码分析实现细节,同时补充参数组合、异常传播、队列策略与关闭流程中的工程边界,避免只停留在线程复用这一层的概念描述。 参考资料...

Java 多线程与并发面试问题整理

围绕线程状态、线程池、锁机制、AQS 与并发语义的系统梳理

这篇笔记围绕 Java 并发中的高频基础问题展开,重点覆盖线程生命周期、线程池、synchronized、volatile、CAS、AQS 以及常见锁模型之间的关系。文章目标不是罗列零散问答,而是把这些概念按“语义 -> 机制 -> 边界 -> 典型误区”的顺序串起来,形成一份可复用的并发基础索引。 文中涉及若干 JDK 版本差异,例如 Concurrent...

JAVA虚拟机-Ⅱ

垃圾回收算法、收集器与引用类型

JVM 垃圾回收部分主要涉及三个层面:如何判断对象是否存活、如何选择合适的回收算法、不同收集器在吞吐量与停顿时间之间如何取舍。 本篇内容包括对象存活判断、经典垃圾回收算法、HotSpot 中常见垃圾收集器、Minor GC / Full GC 等术语,以及强引用、软引用、弱引用、虚引用四种引用类型。 本文参考微笑、陈树义、头条科技及其他资料,并结合 HotSpot ...