再次声明,这里的大部分文章都是我从我baidu的博客上转过来的,那里专业人士比较少,以后新的文章都会发表在这里。
用了点时间把我的webserver的基本架构图大致描述了出来,一则为了自己有个更为清晰的认识,二则为那些在服务器架构方面有要求有想法的人提供一点参考。
总体来讲架构的思路就是利用linux的socket或者文件fd的唯一性来避免全局竞争锁的出现(可能liunux内内部在分配的时候已经采用了锁),
这样我只要保证每次同一个fd只出现在一个环节的其中一个线程中就不会导致全局锁,这样就可以在系统性能方面提供一个伪耦合的架构,多个环节均采用任务调
度器来进行,这样当系统出现瓶颈的时候就可以加大那个环节的线程数量来解决,外部还是通过epoll的事件机制处理,这样就可以达到比较理想的动态处理速
度,又不会影响静态处理速度,其实IOCP内部也似一个线程池来解决的异步IO,只有把每个环节需要IO的部分都打散才能够保证系统的整体性能,并且不会
因为一个调度的失败影响全局的进程,总体结构图如下:
见100%大图
其中在读的环节见如下图表:
服务端处理见如下:
这样总体的系统就可以在server处理环节开展更为灵活的扩展方式,类似apoache的是将协议、网络等底层的处理部分全部封装,然后保证性能
和稳定性的前提下对中间环节进行扩展,这样可以避免fastcgi的引入,以求达到更高的服务器端性能。当然我的总体服务是一个类似于sop的纯XML+
数据库+全文索引的模式,正因为如此才可以将设计全部局限于一个应用之中。
这是最原始的架构图,现在已经做了很多改动,不过任务调度器还是挺合理的一个工具,只是他跟epool有同质冲突,所以现在的改动全部是基于事件驱动,不过这种架构也能跑出比Nginx更高性能的web 服务器。
分享到:
相关推荐
WEB集群整体架构图1
Embedded Web Server Architecture for Web-based Element and Network Management
大型web系统架构动态应用,是相对于网站静态内容而言,是指以c/c++、php、Java、perl、.net等服务器端语言开发的网络应用软件,比如论坛、网络相册。1、学习Web开发原理,包括MVC/MTV等Web框架; 更多资源下载 ...
Web Server程序Web Server程序Web Server程序
c#WebServer简单示例 这是我第一次学习webserver时候别人给的觉得非常好用!简单明白!
这是做web项目开发的一个最基本的架构!!
近期需要做一个技术分享,分享一些技术架构。第一次画架构图,分享给大家,请大家多多指教拍砖,谢谢!
VC写的webserver程序
android简单网页服务器,可作为android上面的webserver
我的webserver开发
Oracle WebServer完全教程Oracle WebServer完全教程Oracle WebServer完全教程Oracle WebServer完全教程Oracle WebServer完全教程Oracle WebServer完全教程Oracle WebServer完全教程Oracle WebServer完全教程Oracle ...
vs2008在调试WebSite项目的时候,会启动自带的简易WebServer(缺省位于C:\Program Files\Common Files\Microsoft Shared\DevServer\9.0),这样就可以不必发布到IIS来调试。但是这个简易的WebServer有个问题,就是它...
android下面的webserver的实现,可以使用无线把android设备当作服务器,别的设备或者pc只要在这个网段就可以通过浏览器或者发送socket消息模拟http协议实现访问无线设备的内容。
Abyss Web Server X2 Version 2.8 含注册
搭建Matlab web server开发环境 根据自己开发实践总结出来。 原创。 Matlab web server
使用Qt调用自己从qtsoap提取的源码qtsoap.h、qtsoap.cpp,测试公用的天气预报WebServer。实现获取天气、国家、省份等信息
利用VC6.0实现的一个简单的 Web Server,能够响应客户端的请求将指定目录下的 HTML文件通过指定的TCP端口发送给客户端
什么是webServer和为什么要用webServer
web server 3.0中文 web server 3.0中文
一个简易的WebServer,能够在IIS支持下实现网页的简单访问,适合初学者!