开发内功修炼@张彦飞开发内功修炼@张彦飞

talk is cheap,
show me the code!

最新发布

网络篇

深入理解Linux端口重用这一特性 配套实验源码

张彦飞(@开发内功修炼) 阅读(102)

大家好,我是飞哥!开篇我先考大家一个小问题,如果你的服务器上已经有个进程在 listen 6000 这个端口号了。那么该服务器上其它进程是否还能 bind 和 listen 该端口呢?我相信一定会有一部分同学会答说是不能的。因为很多人都遇到过“Address already in use”这个...

网络篇

为什么服务端程序都需要先 listen 一下?

张彦飞(@开发内功修炼) 阅读(80)

大家好,我是飞哥。大家都知道,在创建一个服务器程序的时候,需要先 listen 一下,然后才能接收客户端的请求。例如下面的这段代码我们再熟悉不过了。int main(int argc, char const *argv[]) { int fd = socket(AF_INET, SOC...

网络篇

万字多图,搞懂 Nginx 高性能网络工作原理!

张彦飞(@开发内功修炼) 阅读(134)

大家好,我是飞哥!在单进程的网络编程模型中。所有的网络相关的动作都是在一个进程里完成的,如监听 socket 的创建, bind、listen。再比如 epoll 的创建、要监听事件的添加,以及 epoll_wait 等待时间发生。这些统统都是在一个进程里搞定。一个客户端和使用了 epoll ...

网络篇

剖析Netty内部网络实现原理

张彦飞(@开发内功修炼) 阅读(103)

大家好,我是飞哥!我在前面的几篇文章中分享了 Redis、Nginx 的网络模块内部实现原理。今天我就再带大家来了解一下 Netty 的网络内部实现。单线程 Redis 如何做到每秒数万 QPS 的超高处理能力!Redis 6 中的多线程实现方式比我预期的要差万字多图,搞懂 Nginx 高性能...

网络篇

Redis 6 中的多线程实现方式比我预期的要差

张彦飞(@开发内功修炼) 阅读(113)

大家好,我是飞哥!Redis 是一个高性能服务端的典范。它通过多路复用 epoll 来管理海量的用户连接,只使用一个线程来通过事件循环来处理所有用户请求,就可以达到每秒数万 QPS 的处理能力。下图是单线程版本 Redis 工作的核心原理图,详情参见。单线程的 Redis 虽然性能很高,但是却...