摘要: 1 前言 Linux 网络协议栈是根据 TCP/IP 模型来实现的,TCP/IP 模型由应用层、传输层、网络层和网络接口层,共四层组成,每一层都有各自的职责。 应用程序要发送数据包时,通常是通过 socket 接口,于是就会发生系统调用,把应用层的数据拷贝到内核里的 socket 层,接着由网络协议 阅读全文
posted @ 2023-06-20 10:30 酷酷- 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 1 前言 这节我们来看看一致性哈希是什么,使用场景,解决了什么问题? 2 如何分配请求? 大多数网站背后肯定不是只有一台服务器提供服务,因为单机的并发量和数据量都是有限的,所以都会用多台服务器构成集群来对外提供服务。 但是问题来了,现在有那么多个节点(后面统称服务器为节点,因为少一个字),要如何分配 阅读全文
posted @ 2023-06-20 07:27 酷酷- 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 1 前言 这节我们来看看 Reactor 和 Proactor 这两个高性能网络模式。 别小看这两个东西,特别是 Reactor 模式,市面上常见的开源软件很多都采用了这个方案,比如 Redis、Nginx、Netty 等等,所以学好这个模式设计的思想,不仅有助于我们理解很多开源软件,而且也能在面试 阅读全文
posted @ 2023-06-20 06:59 酷酷- 阅读(71) 评论(0) 推荐(1) 编辑
摘要: 1 前言 我们以最简单 socket 网络模型,一步一步的到 I/O 多路复用,具体细节每个系统调用的参数的这里不说哈。 2 最基本的 Socket 模型 要想客户端和服务器能在网络中通信,那必须得使用 Socket 编程,它是进程间通信里比较特别的方式,特别之处在于它是可以跨主机间通信。 Sock 阅读全文
posted @ 2023-06-20 06:59 酷酷- 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 1 前言 磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝、直接 I/O、异步 I/O 等等,这些优化的目的就是为了提高系统的吞吐量,另外操作系统内核中的磁盘高速缓存区,可以有效的减少磁盘的访问次数。 这次,我们就以「文件传输」作为切入 阅读全文
posted @ 2023-06-20 06:58 酷酷- 阅读(34) 评论(0) 推荐(0) 编辑