今下午在公司内部做了高端话题的分享,话题是异步io调度器是怎么实现的. 另外结合socket服务器又该如何调度处理? 这次的PPT写的有些简略,但基本说明了构建异步io框架的基本元素。 

这次的分享由来是什么? 我前端时间一直再写一个调度器,类似于gevent那种,但中间遇到了不少的问题,比如信号事件化,定时器触发事件化。  真正的下手去实现的时候,会发现自己忽略了众多的细节,我花了将近一个月的事件去造一个调度器的轮子,虽然最后实现的很是不雅,但中间的学习过程,真心很受益 。 发现自己越来越迷失在高性能并发的场景应用了。 O(∩_∩)O~  可恨的是没有场景让我具体去测试。


另外,我发现很多朋友张口异步,闭口非阻塞的,天天说tornado怎么牛逼,node.js回调是如何销魂,gevent是如何让人舒服。。。 但问题是很多人都将不明白异步非阻塞的本质到底是什么?  什么是阻塞,为什么会阻塞,怎么怎西是哪里阻塞,怎么避免阻塞.    当然我那些变态源码同事还是很强大的,他们对于tornado的源码算是吃透了。 但是,他们对于系统的io调度器实现,还是有点朦胧的感觉。所以,这次分享更加侧重于软实战的感觉。


内容点:
    socket技术实现

    长连接 vs 短连接

    忙轮询 vs io多路复用

    select vs epoll区别
    边缘触发 vs 水平触发
    上下文那点事
    场景的高并发网络模型

    协程跟连接池的关系
    libevent、libev
    怎么写io调度器
    怎么写非阻塞客户端

    回调函数的实现
    定时器的实现

    …

该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新. http://xiaorui.cc/?p=3377

我把PPT扔到slideshare了,如果看不到ppt内容的朋友,可以自行翻墙或者 下载pdf版本.


PDF地址:

http://xiaorui.cc/async_frame.pdf

源地址:

http://www.slideshare.net/rfyiamcool/async-io-frame


async io frame from rfyiamcool

异步io框架的实现 from rfyiamcool

END.



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!

基于timerfd epoll开发的io定时器 [下]

接着上下文 接着上文, 上次内容是说epoll timerfd的原理和函数方法,下文主要是python epoll timerfd的之间的调用. 该文章写的有些乱,欢...

阅读全文

基于timerfd epoll开发的io定时器 [上]

造一个轮子 对的,我又重新造了一个轮子! 关于周期定时器的轮子。 以前在python环境下,用二叉堆和gevent later写过单机的定时器,后来借用redis的sort...

阅读全文

python下简单实现select和epoll的socket网络编程

Na今天就简单说说关于python下的socket的select和eopll的接口开发 ~ select模型目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点,...

阅读全文

1则回应给“技术分享《一个异步io调度框架的实现》”

  1. cs说道:

    感觉到干货了

发表评论