logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

公网 IP、私网 IP、路由表、转发表与 MAC 地址的关系

公网 IP 是可以在互联网范围内参与路由的地址。通常一个家庭宽带、一个企业出口、一个云服务器,都会有一个或多个公网 IP。从互联网的视角看,真正能被外部网络直接识别和访问的,通常是这个公网 IP。私网 IP 是保留给局域网内部使用的地址,不能直接在公网中路由。10.0.0.0/8到这类地址更准确地叫“私网 IP”,不是“虚拟 IP”“在链路上”表示目标是直连可达的,不需要经过下一跳网关路由表负责选

#tcp/ip#macos
从浏览器输入 URL 到页面返回:一次互联网通信全过程

把整个过程压缩成一句话就是:“先解析域名,再建立 TCP 连接,然后发送 HTTP 请求,服务器返回响应,浏览器解析资源并渲染页面,最后按需复用或关闭连接。DNS 解析TCP 三次握手HTTP 请求与响应路由转发与网关TCP 四次挥手这也是理解整个互联网通信过程最好的入口。如果这篇文章对你有帮助,欢迎继续阅读本系列后续内容。若文中有不准确或需要补充的地方,也欢迎指出。

#计算机网络
操作系统与高性能 IO:零拷贝、一次读 IO、CPU 缓存与伪共享

CPU 缓存不是按“一个变量”来管理的,而是按“缓存行”来管理的。缓存行通常是 64 字节,它是缓存系统中最小的管理单位和失效单位。CPU 读取一个变量时,往往会把它周围相邻的一块数据一起读入缓存所以连续内存访问通常更高效,因为它更容易命中缓存行。伪共享是并发编程里一个很常见但不容易一眼看出来的性能问题。线程 A 修改变量x线程 B 修改变量yx和y虽然是两个不同变量,但它们刚好落在同一个缓存行里

#缓存
Redisson 分布式锁实现:可重入与看门狗

在分布式架构中,多台服务器共享同一资源时,传统的 JVM 锁已无法保障数据一致性,分布式锁由此成为关键。Redisson 基于 Redis 实现的分布式锁,不仅支持可重入、自动续期,还通过发布订阅机制高效处理锁竞争。本文从加锁、锁续命、锁释放三个环节,深入解析 Redisson 的核心设计,包括 Lua 脚本保证原子性、Watch Dog 看门狗的定时续期机制,以及如何灵活控制锁的失效策略。

#redis
单线程 Redis 的高性能之道

Redis 以单线程模型处理网络请求与命令操作,却能在高并发场景下保持惊人的吞吐能力。(哈希表、跳表等)以及,让单线程能够高效处理海量连接。随着 Redis 6.0 引入多线程 IO,网络读写被拆分给多个线程并行处理,进一步突破了网络瓶颈;而命令执行依然坚守单线程,避免了复杂并发控制,确保 Lua 脚本和事务的原子性。本文将从单线程的设计精髓,到主线程与 IO 线程的协作流程,深入浅出地解析 Re

#redis#后端
BIO、NIO、AIO 与 IO 多路复用:select、poll、epoll 详解

IO 多路复用的目标是:“让一个线程同时监听多个文件描述符,当其中某些就绪时再处理。selectpollepoll它们本质上都在做同一件事:帮助应用进程找到“哪些连接现在可以读写”。BIO:一个线程盯一个连接,简单但浪费NIO:线程不阻塞,可以管理多个连接IO 多路复用:帮助线程高效发现哪些连接就绪epoll:Linux 高并发场景下最常见的选择AIO:由系统在完成后主动通知,更偏异步如果你后面准

#nio#java#数据库
Reactor 模型详解:单 Reactor、主从 Reactor 与 Netty 思想

谁负责接收连接谁负责监听读写事件谁负责真正业务处理从单 Reactor 到主从 Reactor,本质上就是不断把职责拆开,让系统更适合高并发场景。如果你在学习 Netty,这篇内容一定要和前面的epoll、NIO 一起理解。只有把这三者连起来,才算真正看懂高性能网络服务的底层设计。如果这篇文章对你有帮助,欢迎继续阅读本系列后续内容。若文中有不准确或需要补充的地方,也欢迎指出。

#java#android#开发语言
Paxos协议详解:分布式系统如何通过多数派协商达成数据一致

该协议将节点划分为提案者(Proposer)、接受者(Acceptor)和学习者(Learner)三重角色:提案者通过全局递增提案编号(ProposalID)发起价值提议,接受者依据承诺不退化原则(仅接受更高编号提案)过滤冲突请求,最终在多数派节点间形成确定性决议。其Prepare-Accept双阶段提交机制,既通过最大提案继承策略规避了脑裂风险,又依赖活锁规避设计(提案编号指数退避)解决了多提案

文章图片
#分布式
到底了