下载地址:
http://pan.baidu.com/share/link?shareid=470168&uk=2686094642
简单说明:简单做了一个服务端框架demo,粗略实现一下自己的想法,和协程(coroutine)的理念基本相同,有这么几个核心设计要素是我希望通过代码展现出来的:
1,程序性质是一个服务端框架,需要用户编写请求的解析/反序列化函数,之后请求将经过若干预先编写的插件进行处理。(PS:个人精力的关系,插件直接与源码一起编译,而不是.so)。
2,框架支持插件异步化处理,即某个插件在处理某个请求时可以yield,并在异步处理完成后resume恢复后续插件的处理以及后续请求的处理,这与lua coroutine的想法是一样。
框架的目的是:有这么一大类服务,它们的客户端要求严格的请求->应答顺序,比如请求1->2->3,那么服务端也应返回1->2->3,此类服务如果需要支持异步业务逻辑,实在是离不开诸如coroutine此类的思想进行设计解耦,否则难成框架。(对应的另一类服务是通过在请求中携带唯一的ID来关联应答的,此种服务可以很简单的实现各种复杂的异步逻辑)
有兴趣的同学一起讨论一下经验或者问题,暂时还没写比较生动的插件demo,今明两日实现一个proxy插件。