最新内容

Linux高性能服务器设计

C10K和C10M计算机领域的很多技术都是需求推动的,上世纪90年代,由于互联网的飞速发展,网络服务器无法支撑快速增长的用户规模。1999年,Dan Kegel提出了著名的C10问题:一台服务器上同时处理10000个客户网络连接。10000个网络连接并不会发送请求到服务器,有些连接并不活跃,同一时刻,只有极少的部分连接发送请求。不同的服务类型,每个连接发送请 …

redis 为什么这么快,除了io多路复用还有什么?

前言相信大家在面试过程中,都被面试官问到过这样一个问题,缓存中间件大名鼎鼎的 redis 速度为什么这么快呢?针对于面试过程中的痛点问题,笔者昨晚熬夜收集资料,并且通过走访大量使用者,整理出如下的结论。我敢保证,你看了这篇文章,再问你这个问题,保准把面试官虐哭。分析原因这里就不卖关子了,先说结论,我们再对原因进行抽丝剥茧。redis快的原因纯内存操作(最主要 …

网关的作用与设计介绍

网关的作用1.提供统一的鉴权、限流、协议转换等非业务基础的能力,减少业务研发对非业务基础能力的建设投入2.提供快速配置化的接口管理部署能力,提升接口开放的研发效率3.统一流量入口,有利于流量的统一安全管控以及基础架构升级4.业务统一托管API接口,根据流量分配资源,提升资源利用率网关的设计与实现接收网络请求以及处理网络情况在高并发大流量的情况下,往往客户端存 …

Nginx学习之Nginx高性能的实现原理

Nginx 采用的是多进程(单线程) & 多路IO复用模型,使用了 IO 多路复用技术的 Nginx,就成了”并发事件驱动“的服务器,同时使用sendfile等技术,最终实现了高性能。主要从以下几个方面讲述Nginx高性能机制:Nginx master-worker进程机制。IO多路复用机制。Accept锁及REUSEPORT机制。sendfile零拷贝机 …

一篇文章让你真正搞懂epoll机制

1.epoll简介epoll是Linux内核为处理大批量文件描述符而作了改进的poll,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。epoll可以理解为event poll,它是一种事件驱动的IO模型,可以用来替代传统的select和poll模型。epoll的优势在于它可以同时处理大量的文件描述符,而且不会随着文件描述符数量的增加 …

阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO 一文搞定

关于IO会涉及到阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO等几个知识点。知识点虽然不难但平常经常容易搞混,特此Mark下,与君共勉。1 阻塞跟非阻塞1.1 阻塞阻塞IO情况下,当用户调用read后,用户线程会被阻塞,等内核数据准备好并且数据从内核缓冲区拷贝到用户态缓存区后read才会返回。可以看到是阻塞的两个部分。CPU把数据从磁盘读到内核缓 …

【Java NIO深潜】Selector:多路复用的艺术与实践

引言在高并发的网络编程中,如何高效地处理大量的客户端连接,一直是开发者面临的一大挑战。传统的多线程模型虽然直观,但由于线程上下文切换带来的开销,以及操作系统资源的限制,其可扩展性受到了严重制约。为了解决这一问题,Java NIO框架引入了Selector(选择器)的概念,它作为一种多路复用器,能够在一个线程中监听多个Channel(通道)的IO操作状态,极大 …

netty通信原理

1、netty通信原理Netty是一个异步事件驱动的网络应用程序框架, 用于快速开发可维护的高性能协议服务器和客户端。它极大地简化并简化了TCP和UDP套接字服务器等网络编程。BIO:(Blocking IO)NIO (Non-Blocking IO)Selector 一般称 为选择器 ,也可以翻译为 多路复用器,Connect(连接就绪)、Accept(接 …

图解Linux poll机制,终于集齐IO复用三剑客(精华篇)

前言:前面几篇文章已经详细讲解了Linux select和epoll机制,select和epoll两种IO复用方式用的人比较多,就像一家人一样,epoll相当于大哥,select相当于弟弟,而poll相当于二哥,家里的老二通常是很容易被忽视的对象,poll这种IO复用方式也很容易被忽视。epoll机制效率高,适用于高并发场景,所以epoll机制广泛用于各种开 …