各位大侠,最近有需求在原来一门户(行业)原基础上构建一目标日访问IP量大约到10万的WEB系统.
本人经验不是很多,想在此请教,是否有好的什么建议?我个人目前基本想法是这样:
有三台机子,其中流量集中的主页面区(网站正式内容)和论坛.第一台做WEB(主页面文件和程序).
第二台做论坛程序.
第三台专做前二台机子使用的数据库.其中前台程序使用编译性程序语言如(JSP/Java或ASP.NET/C#编写),数据库采用 mySQL server 4.1 或 MS -SQL Enterprise.
对于大部份固定模式数据读写使用系统上的存储过程实现.
常改动或者较复合型的SQL调用/有大量返回值等类型,使用中间层调用处理.1。前台页面,像新闻、信息类型等内容,在增加时生成静态HTML文件!
(这里有个问题,如果文章需要检查访问者访问权限或者访问统计,那么还会涉及数据库的一些操作,
在HTML类型中有什么更好的办法实现?对于内容模板的实现有什么好的建议?)2。全部CACHE我想如果每个页如果被访问后能够CACHE那是最好的。不知道有什么好的技术?3。全站采用统一用户管理,那么不同服务器之间的用户信息如何传递和保密?
如,在ASP.NET可以配置web.config来实现进程外(数据库或用URL保存SessionState)
不懂哪位有具体实施经验,可否相告之?以上是我目前最想知道的资料,如果您曾经做过类似网站,发现有我未发现的困难或者我以上相法是错误的,烦请告之!

解决方案 »

  1.   

    个人意见1台机器放全部另外2台用linux加squid做缓存跟反向代理当用户访问一个页面的时候,在缓存服务器找,如果有的话,就从缓存里面取。没有的话,就提交到数据库读取,并写缓存。  就是说只有第一个用户打开的时候才访问数据库,速度稍慢网易也是这么做的,不过可能是为了电信跟网通的互连互通ping www.163.com  ip 为 220.181.28.42直接访问 220.181.28.42得到一个错误页面,最下面就是squid的版本
    Generated Thu, 20 Oct 2005 06:10:14 GMT by www.163.com (squid/2.5.STABLE10)
      

  2.   

    首先谢谢各位,热心的网友.以下是客户原来的情况:
    原来系统是windows2000 and windows2003 开发语言是:ASP
    数据库是用MS-SQL 只是采用简单方式开发,现在数据量(内容和流量)已达到了一个层次,访问起来非常的慢,并且存在很多安全问题,所以现在想重新开发.在这个系统上并没有应用什么深层次的技术和高性能的访问缓解.所以在下一个我实施的系统中,我想这些都要弥补上去.以达高效!
    当前我是想用windows2003 系统,开发语言用: Asp.net /C#作脚本,
    数据库继续用MS-SQL,这样一来可以继承原来的一些资源,并可以解决一下不兼容的问题.
    但是其中有些我没有经验的方面.比如:1.如何在机器上做缓存处理?
    2.如何提高数据访问和效率(包括利用率:如我上提高的中间层访问加上存储过程)
    3.比如分解出了二台WEB机器一台数据库服务后,在WEB_A和WEB_B之间的用户会话或资料如何传递补?
    这些是我在设计时发现的几个问题,请有经验的网友赐教!再次感谢所有关心此贴的网友,谢谢
      

  3.   

     Nils(清水) ( )  可以研究下
      

  4.   

    谢谢各位的响应,贴子已再加30分,现50分了.
    现在以上我们谈的还只是表面的实现目标的一些基本问题,如果再细节起来,对于到时要涉及到的数据库优化问题、模式、中间层、会话跨越等问题。可能更需要大加的支持!
    以上说的基本上就是我目前定的框架,当然我然望有经验的网友能够赐教。我将不胜感激!
    同时也有个建议,对于和我一样的网友,我建议可以参考微软在其studio.net 2003中发布的pet shop源码!其也是采用多层构架编写,据说比Java编写的pet shop 快上好几十倍,并且代码行数也是其1/3(这个信息可以在www.gotdot.net和一些网站要搜索到,并非我个人之言,请不要在此贴以下发生不必要的争执)。另外,我觉得.text(dotText)这个BLOG也很在参考价值。
    当然以上二个源码我也正在开始学习中。如果有同样兴趣的网友可以更多的交流。
      

  5.   

    petshop确实封装的很好,易于重用,大家共同学习~
      

  6.   

    补充一下昨天发的帖子要用squid做缓存服务器硬盘应该是SCSI。  IDE或者SATA,我这已经试过,完全不行。可能访问量不同需要也不同吧我还是觉得除非是即时性的,比如聊天室之类的。
    其它的直接做缓存,不让访问数据库就可以了。 访问量实在很大这么做好稍微小点就优化代码吧。顺便说一句SQL其实挺强的。我这上次至强2.8被拖得没空闲的时候,因为几个程序的原因,事件查看器里SQL平均每秒有1000多条SQL执行
      

  7.   

    当前我设计的系统是在 windows2003 配合IIS6 这样才能发挥Asp.net的最高特性.
    至于 squid 这个我没试用过,好像在是unix-like平以下的吧?如果是缓存,暂时就先不说
    缓存用单台服务器来做,我现在只是想充分利用.NET的缓存技术和特性,一般性内容如前所述采用生成静态页面不直接读取数据库(我个人认为这才是想用缓存的原因,因为只有这样的页面用来缓存才更有意义,一般性的就在页面中加上 outCache好了.)
    在这最后,我还是希望有高手能够参与,把他的宝贵经验与我们分享!
    至于重复性的贴子,如果没有更好的发现或建设性的内容我就先就写到这了!
    谢谢大家!
      

  8.   

    所有的用户信息可以放在同一台机器上用web service调用验证
      

  9.   

    http://msdn.microsoft.com/library/CHS/dwamish7/html/vtoriDuwamish70Overview.asp
      

  10.   

    50分的贴子沉了,可惜!
    CSDN的高手们,挥挥手...