高性能服务器程序框架

服务器的三个主要模板:
(1)I/O处理单元
(2)逻辑单元
(3)存储单元


有关服务器的模型:
(1)C/S(客户端/服务器)模型
逻辑:
服务器启动后
1.创建一个或多个监听socket
2.调用bind函数绑定到服务器感兴趣的端口上
3.调用listen函数等待客户链接
4.服务器稳定运行后客户端可以调用connect函数向服务器发起连接了
缺陷:当访问量过大时,可能所有客户都将得到很慢的响应


(2)P2P模型
核心:摒弃了以服务器为中心的格局,让网络上所有主机重新回归对等的地位
典型:云计算群
缺陷:当用户之间传输的请求过多的时候网络的负载将加重


服务器编程框架
                               单个服务器程序                            服务器集群
I/O处理单元                处理客户连接,读写网络数据        作为接入服务器实现负载均衡
请求队列                          
逻辑单元                       业务进程或线程                             逻辑服务器
请求队列                     各单元之间通信方式             各服务器之间的永久TCP连接   网络存储单元               本地数据库,文件或缓存                         数据库服务器           
I/O复用函数本身是阻塞的,他们能够提高程序效率的原因在于他们具有同时监听多个I/O事件的能力 


同步I/O和异步I/O的区别?

同步发送的是读写就绪事件,关于事件的读写还需要程序来做

异步发送的是读写完成事件,关于事件的读写内核直接完成      



两种高效的事件处理模式
Reactor 同步  就绪
主线程负责监听
工作线程负责处理
Proactor 异步  完成
所有的I/O操作都交给主线程和内核来处理,工作线程仅仅负责业务逻辑






两种高效的并发模式
并发编程的目的:让程序"同时"执行多个任务
***
对于计算密集型的程序 ,并发编程并没有优势,反而由于任务的切换使效率降低,但是如果是I/O密集型的,比如经常读写文件,访问数据库等,则情况就不同了。
***
并发模式指的是:处理I/O处理单元和多个逻辑单元之间协调完成任务的方法


半同步/半异步  P149
变体::半同步/半反应堆
并发的同步:
程序完全按照代码序列的顺序执行
并发的异步:
程序的执行需要由系统事件来驱动




领导者/追随者
多个工作线程轮流获得事件源集合,轮流监听,分发并处理事件的一种模式。
仅有一个领导者线程



池的概念:
以空间换时间,即浪费服务器的硬件资源,以换取其运行效率,这就是池的概念 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值