linux高性能服务器读书笔记之服务器模型
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,1.模型一:C/S(经典的)起因:TCP/IP协议是没有客户和服务端的区别。但是资源(视频,新闻,软件)都是被数据提供者所垄断逻辑:服务器启动后,首先创建一个或多个监听socket,并且调用bind函
千家信息网最后更新 2025年02月07日linux高性能服务器读书笔记之服务器模型
1.模型一:C/S(经典的)起因:TCP/IP协议是没有客户和服务端的区别。但是资源(视频,新闻,软件)都是被数据提供者所垄断逻辑:服务器启动后,首先创建一个或多个监听socket,并且调用bind函数将其绑定到需要(自定义)的端口,然后调用listen函数等待客户连接特点:客户连接是随机事件,需要某种I/O模型来监听连接。例子:服务器I/O复用技术之一的select系统调用(当监听接收到连接 ,服务器用accept来接收,并且分配一个逻辑单元为它服务,(fork系统产生逻辑单元,逻辑单元处理好一切返回给客户端,逻辑单元可以是新创建的子进程,子线程或其他)))
2.接下来就是宅男熟悉的P2P模型
优势:就是去掉通信的中心
特点;就是每台机器在消耗服务的时候也会给别人提供服务
例子:迅雷,云计算机群
问题:主机相互之间很难发现(发现服务器来解决这个问题)
但是本质还是CS,只是一个变相的扩展
I/O处理单元--------》逻辑单元---------》网络存储单元 中间都是由请求队列(通信方式,一般是永久的tCP连接)
2.1I/O处理单元:管理客户连接的模块,等待并且接受新的连接,接受客户的数据,将服务器的相应的数据返回客户端。数据的收发不一定在这里,也可能在逻辑单元,(取决于事件处理模式)2.2逻辑单元:分析并且处理数据,然后将结果传递给I/O处理单元或者直接发送给客户端(对于机器群来说,一个逻辑单元也许就是一台逻辑服务器)2.3.网络储存:可以是数据库,缓存和文件,或者一台服务器(有些是不需要的,如ssh,telnet)2.4.请求队列:各个单元之间通讯方式的抽象两个方面:I/O处理单元通知逻辑单元的方式,逻辑单元访问存储单元的机制这里就会涉及到池的概念,这个TCP理解一般是事先建立好的永久高效的TCP连接
3.I/O模型
3.1阻塞和非阻塞可以用于所有的文件描述符,不仅仅是socket,
3.2阻塞是可能是无法立即完成而被操作系统挂起,知道等待完成事件发生。
3.3非阻塞是系统的调用总是立即返回。,所以如果完成世家没有发生,就会返回和错误一样的标记。(errno可以区分)
要求:我们需要在完成世家发生的情况下,操作非阻塞,才能实现高效率。
例子:I/O复用(最常用的通知机制,还有SIGIO信号)
含义:有个函数叫I/O复用函数,他可以向内核注册一组事件,内核可以将已经完成的事件通知给应用程序。
例子:I/O复用函数:select,poll,epoll_wait
原理:本身每个函数都是阻塞的,但是他们都具有监听多个I/O事件 的能力
备注:SIGIO的信号处理以后再说
备注2:上述的阻塞I/O,I/O复用和信号驱动I/O都是同步I/O模型。
原理:I/O读写操作都是在I/O事件发生之后
异步I/O:(POSIX规范)用户可以直接对I/O进行读写操作,这些操作会告诉用户读写缓冲区的位置,以及操作完成后内核通知应用程序的方式
二者核心区别:同步是用户自己处理I/O操作,异步I.O是内核执行I/O操作。
区别2:同步向应用程序通知二是I/O就绪事件,异步是I/O完成事件。
linux下,aio.h 提供了对异步I/O的支持
单元
逻辑
服务
事件
处理
客户
阻塞
服务器
函数
数据
模型
复用
例子
内核
就是
方式
系统
监听
信号
客户端
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库和网络其他系统的通信
gis数据库转坐标
华为荣誉8x怎么控制服务器
网络安全文明上河图
班级鉴定软件开发
新建帐套并导入数据库
大学计算机网络技术主修课
sql数据库pdf百度云
新鑫互联网科技有限公司
三级数据库技术的概括
华为云服务器远程重启
湖北电力应急软件开发创意
太原网络安全保卫支队招人
如何加强软件开发
jsp查询数据库中文
网络安全巡查员是真的吗
软件开发 电脑
上海网络技术调试
未转变者总是与服务器丢失连接
sql数据库字段长度不够
遵守网络安全板报
新闻网络安全概念股
五年服务器满了会怎么样
智慧果 软件开发
广州晨峻互联网科技有限公司
中国计算机网络技术杰出人物介绍
ftp动态写数据库
学习edis数据库
图数据库研究进展开题报告
软件开发软件安卓下载