Chinaunix首页 | 论坛 | 博客
  • 博客访问: 832008
  • 博文数量: 67
  • 博客积分: 10067
  • 博客等级: 上将
  • 技术积分: 2175
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-12 00:00
文章分类
文章存档

2012年(1)

2011年(7)

2010年(19)

2009年(33)

2008年(7)

我的朋友

分类: 系统运维

2009-07-05 18:34:28

Web Server为什么要自己写?
 
其实,如果你要用c语言去从新写一个web server,那我劝你还是算了。我不认为你写的会比apache 和 lighttp强多少。 lighttp的诞生纯粹是因为有更好的i/o事件控制机制,例如:kqueue,epoll。为了在性能上更进一步,lighttp出现了。
当然这一切,在我看来似乎都源于那篇关于c10k problem的文章。那篇文章以后,人们似乎才更关心c10k的问题,才有了以后更多的改进。
 
说回来。那么不用c语言写,为什么要用脚本语言去写?
在这里,我想证明的是,用脚本语言编写出的web server可以在性能方面胜任这种工作。
除去web server之外,大家可以考虑一下,实际上整个web开发体系都是建立在各种脚本语言之上的。为了让这些脚本语言在web环境下运行的更好,大家使用了很多的技术手段。那么,如果web server也是用脚本语言编写的,这很大程度上可以更加容易的融入web开发体系。特别是遇到性能问题的时候,也更加容易解决。
 
之前的性能问题,无非一方面是由于多进程间交互数据所引起的(另一方面是web server自身的性能和脚本语言自身的性能问题)。现在动态网页程序直接嵌入到了web server中,所以对于多次的重复请求,就没有了进程间交换数据所引起的问题。
由于你对于web server有最大的控制权,所以对于数据的cache,可以方便的实现。最后的性能问题,实际上集中在你要使用多少内存,你的数据结构是否合理,你要缓冲多少数据,缓冲什么样的数据上。这些都由你自己来决定。
 
在我看来,现在的web 开发已经十分复杂。对于大型的网站开发,性能要求比较高,所以对于性能优化方面做的工作十分的多,光整合各种性能优化方案所耗费的时间可能就比自己开发一个web server并加入优化方案的时间要长。这时,转向自己的web server开发,并加入自己的优化也许就比较容易。(记住,我所指的自己的web server开发是说用脚本语言编写的web server,这个脚本语言还必须是你动态网页使用的语言。)动态网页的语言与web server的语言相同是为了它们可以融合在一起,也就是web server中就嵌入了动态网页程序。
 
开发的分工是好事情,但是分工过多可能造成的问题也很复杂。这是程序开发的常见问题。有时,适当的合并开发,也许可以有意想不到的结果。当然,这种可能的出现(用脚本写web server)并不是一开始就可以的,这中间经过很多脚本语言能力的提高。当脚本语言能力进一步提高的时候,你会发现这种可能性的出现。这时,再回头重新梳理架构,就会发现不一样的感觉。
 
web开发在这两年快速进化,我们也许也该一并快速进化。
上面所说的都是些实验性的理论,自己的公司由于资金、人员等原因也不会立刻全力投入去做更加产品性的东西。希望有同仁有机会可以在这方面更进一步。
我想说,其实这样的基础性东西能带来很大的利润,但问题的关键是你必须投入大量的人力去研究开发。看很多国内的科技公司,有很多公司现在都有自己的研发意识,这真的很好。国内的开发趋势没有理由总是跟着国外的走,我们应该可以有自己的东西。 大型互联网网站这么富有,多做做这方面的开发可能会有所突破。
相信自己。
阅读(1269) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-07-15 14:31:21

那我的WB SERVER 运行在嵌入式系统上,也用脚本实现较好? 。。。。。。。