Posts Tagged ‘server

  从事PHP开发有好几年了,初出茅庐时就接触了PHP和JAVA两种WEB开发语言,其中JAVA主要是SERVLET模式,而PHP则是使用时间最长的一门语言。真正应用在业务上的也就是PHP了。PHP的优点我就不废话了,但并不代表它没缺点。PHP给我最大的困扰就是不支持多线程,不支持异步处理,也正是因为这两点导致PHP容易导致堵塞。   近期一个项目上,我写了一个简单的PHP开发框架,在这个框架基础上已经做了两个版本的开发,第二个版本是Flash+PHP。其中主要应用到的是JSON-RPC接口部分,PHP要做的基本就是数据逻辑处理方面的工作了。因为有了点经验,所以我就想是否可以从PHP换到LUA类的语言上做WEB开发。   查看过不少的资料,发现LUA会是一个很好的选择。我看中它的原因就在于LUA跟C的无缝配接上,C与LUA上的代码方法都可以互相调用、共享数据。并且我在去年就自己写了一个WEB SERVER程序,我可以比较简单的在原来的基础上集成对LUA的支持。但也有一个大的问题存在,LUA在WEB应用上的开发资料非常少,国内甚至没有什么WEB项目是使用LUA进行开发的,也许有很多东西需要自己去摸索。据我了解的有lighttd是支持FastCGI模式调用LUA,apache也有个mod_lua,但Nginx方面的资料我就没找着 _-!! (我很喜欢用Nginx来做WEB SERVER和Proxy,它真的很强大)当然还有一写直接就使用LUA来写的WEB SERVER,但考虑到LUA的Socket库不支持epoll,担心性能有问题。   so~我就着手自己弄个LUA SERVER吧 下面是这个LUA SERVER的业务处理流程图:   最上级的还是Nginx,它的主要作用是负责负载均衡、访问过滤和静态文件访问等服务。接下来就是核心LUA SERVER,这里不仅是一个WEB SERVER,同时这也是一个LUA的WEB开发框架的核心,使用多进程和多线程互相配合的模式提供Server服务,里面还包括了MySQL的Connect pool和Memcache的Connect pool,pool 是JAVA开发里面经常用到的,但PHP就因为没有多线程,就无法实现。   接下来的是一个Controller负责业务处理的调度。还包括一个Template engine(废话,WEB开发没一个好的模板引擎会很累的)   剩余的就是WEB项目里面的业务处理程序咯,这没啥好说滴。我的经验是,这类代码最多使用的是 if、for和数据库操作之类的处理了。所以说要拿什么语言来开发WEB都行~能连数据库都搞定了。BASE语言也可以写CGI~囧~   现在LUA SERVER的基础模型已经写好了,经过一些简单的压力测试,LUA的性能大概是PHP的1~2倍,很牛!我得尽快把它好好完善起来 放到实际业务上。嘿嘿~完~

  Httperf is a tool for measuring web server performance. It provides a flexible facility for generating various HTTP workloads and for measuring server performance. The focus of httperf is not on implementing one particular benchmark but on providing a robust, high-performance tool that facilitates the construction of both micro- and macro-level benchmarks. The three distinguishing [...]


关于我

头衔:创业者/全能控
技术方向:云计算/云存储/CDN 系统
 
现在所在:杭州 / 西湖区
 
开源项目: